Как выполнить оптимизацию dijit с помощью r.js?
Как обойти ошибку "документ не определен" при сборке r.js через r.js -o против dijit?
В частности, я пытаюсь собрать r-build.js:
define(["require", "exports", "dijit/layout/ContentPane"], function (require, exports, ContentPane) {
function simple() {
return ContentPane;
}
return simple;
});
С помощью r.js.cmd -o r-build.js
и это сообщает:
ReferenceError: document is not defined
In module tree:
test/simple
dijit/layout/ContentPane
dijit/_Widget
dojo/query
dojo/selector/_loader
Мой файл r-build.js выглядит так:
({
appDir: "../",
baseUrl: "amd",
dir: "../../release",
optimize: "none",
modules: [
{
name: "test/simple",
exclude: ["jquery", "dojo"]
}
],
packages: [
{
name: 'cm',
location: 'http://localhost:93/CodeMirror'
},
{
name: 'jquery',
location: 'd:/code/jquery/src',
main: 'jquery'
},
{
name: 'jquery/ui',
location: 'http://localhost:93/jquery-ui/ui'
},
{
name: 'jquery/themes',
location: 'http://localhost:93/jquery-ui/themes'
},
{
name: 'sizzle',
location: 'http://localhost:93/jquery/external/sizzle/dist',
main: 'sizzle'
},
{
name: 'dojo',
location: 'd:/code/dojo'
},
{
name: 'dijit',
location: 'd:/code/dijit'
},
{
name: 'xstyle',
location: 'http://localhost:93/xstyle'
}
]
})
1 ответ
Я борюсь с той же проблемой. Создание связки r.js с Dojo - это боль. Это можно легко исправить... Если у вас нет проблем с поддерживаемыми браузерами (например, post-ie9), переопределите этот файл и измените строки, проверяющие querySelectorAll, на true, и вам не нужно будет делать это. эти чеки. Подобно...
has.add("dom-qsa2.1", true);
has.add("dom-qsa3", true);
Надеюсь, это поможет немного...