Ошибка: defineAlreadyDefined после применения сборки dojo

Я создал собственный профиль сборки, следуя инструкциям на http://www.sitepen.com/blog/2012/06/11/dgrid-and-dojo-nano-build/. Я создал загрузочный слой для додзё:

    'dojo/dojo': {         
        include: ['dojo/dojo', 'dojo/domReady', 'dojo/_base/declare'],         
        boot: true,         
        customBase: true    
    },

Я также заметил, что если я пропущу определение этого слоя, будет создан более крупный пакет dojo, поэтому модули, включенные во второй слой, будут продублированы.

Второй слой содержит модули GridX, элементы управления dijit и все остальное из Dojo, которое используется:

    'dojo/dojo-all': {
        include: ["dojo/on", "dojo/dom-attr", "dojo/dom-class", "dojo/query", "dojo/_base/lang", "dojo/request/xhr", "dojo/parser", "dojo/_base/connect", "dojo/DeferredList", "dojo/store/Memory", "dojo/store/Observable",
        "dijit/registry","dijit/form/TextBox", "dijit/form/Textarea", "dijit/form/ComboBox", "dijit/form/FilteringSelect", "dijit/form/CheckBox", "dijit/form/Button",
        "gridx/core/model/cache/Sync", "gridx/Grid", "gridx/modules/SingleSort", "gridx/modules/ColumnResizer", "gridx/modules/Pagination", "gridx/modules/pagination/PaginationBar", "gridx/modules/CellWidget", "gridx/modules/Edit", "gridx/modules/Persist", "gridx/modules/Filter", "gridx/modules/filter/FilterBar", "gridx/modules/filter/QuickFilter", "gridx/modules/HiddenColumns"],
        exclude: ['dojo/dojo', 'dojo/domReady', 'dojo/_base/declare'],
        boot: true,
        customBase: false
    },

Приложение запускается правильно и выполняет только запрос к многоуровневым ресурсам, однако в консоли FireBug есть ошибка:

Ошибка: defineAlreadyDefined makeError() dojo-all.js (Zeile 28)

Я думаю, это потому, что declare модуль загружается дважды: сначала с помощью начальной загрузки dojo.js, определенной из файла HTML. Во-вторых, из слоя dojo-all.js, загружаемого динамически через require.

Должен быть какой-то поток в моем подходе, основанном на цитируемой статье, или статья адаптирована к более старой версии Dojo (я использую версию 1.9).

В чем здесь ошибка? Как правильно определить слои? Как я могу дать команду сборке dojo не перезаписывать загрузочную версию dojo.js? Или исключение объявлено неправильно - если да, то как оно должно быть объявлено?

1 ответ

Решение

Настройка boot: true вызывает загрузчик. Только установить boot: true на слое, который вы хотите включить define функция.

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