Слой Dojo не включает в себя все необходимое - PullRequest
2 голосов
/ 01 марта 2012

У меня есть пример сценария, который использует

dojo.require("dojo.parser");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.TabContainer");
dojo.require("dojox.grid.DataGrid");
dojo.require("dijit.Tree");
dojo.require("dojo.data.ItemFileReadStore");

Я хочу создать минимизированную сборку Dojo, поэтому я использую этот профиль

dependencies = {
    stripConsole    : "normal",
    selectorEngine  : "acme",
    optimize        : "closure",
    layerOptimize   : "closure",
    cssOptimize     : "comments.keepLines",
    mini            : true,
    internStrings   : true,
    localeList      : "en-us",
    releaseName     : "dojo.custom",
    action          : "release",
    optimize        : "shrinksafe",
    layerOptimize   : "shrinksafe",

    layers : [
        {
            name         : "dojo.js",
            dependencies : [ 
                "dojo.parser",
                "dojo.data.ItemFileReadStore",
                "dojox.grid.DataGrid",
                "dijit.layout.BorderContainer",
                "dijit.layout.ContentPane",
                "dijit.layout.TabContainer",
                "dijit.Tree"
            ]
        }
    ],
    prefixes: [ [ "dijit", "../dijit" ], [ "dojox", "../dojox" ] ]
}

Да, компилятор компилирует огромное Dojo.JS-файл, который я включаю в мою HTML-страницу, но все еще есть много запросов XHR.Система загружает скрипты, которые я не использую явно.Вот скриншот

1 Ответ

2 голосов
/ 02 марта 2012

Интересно.

Вы уверены, что браузер успешно находит и загружает сжатую версию?

Браузер ищет _base.js, который определенно должен быть уже вставлен в этот файл.

Обновление

Tommi - слой dojo.js всегда создается системой сборки, вам не нужно явно объявлять его. Я не уверен, каков будет эффект того, что вы явно объявите это вместе с зависимостями. Это может сработать, но не сработает. Возможно, зависимости переопределяют обычное содержимое dojo.js.

Что я обычно делаю, так это просто позволяю системе собирать dojo.js, а затем создаю слой, содержащий все нужные мне элементы dijit / dojox, и развертываю его. Я также обычно создаю 3-ий отдельный файл со своими пользовательскими материалами.

Я бы попробовал это. Ключ, я думаю, состоит в том, чтобы сделать отдельный слой из dojo.js. (Но все же включите обычный dojo.js на свою страницу).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...