Как выполнить оптимизацию 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);

Надеюсь, это поможет немного...

Другие вопросы по тегам