如何用r.js执行dijit优化?

时间:2014-12-09 03:21:30

标签: dojo r.js

当通过r.js -o对dijit进行r.js构建时,我们如何解决“未定义文档”错误?

具体来说,我正在尝试构建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 个答案:

答案 0 :(得分:0)

我在同一个问题上打架。使用Dojo构建r.js包是一件痛苦的事。 这个很容易修复...如果你没有遇到支持的浏览器的问题(例如post-ie9之后)覆盖该文件并将检查querySelectorAll的行更改为true,你将不需要做那些检查。像...

  has.add("dom-qsa2.1", true);
  has.add("dom-qsa3", true);

希望它有所帮助...