我按照http://www.sitepen.com/blog/2012/06/11/dgrid-and-dojo-nano-build/的说明创建了自己的构建配置文件。我为 dojo 创建了引导层:
'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
模块被加载了两次:首先是使用从 HTML 文件定义的 dojo.js 引导程序。其次,从 dojo-all.js 层,通过 require 动态加载。
基于引用的文章,我的方法中必须有一些流程,或者该文章已适应旧版本的 Dojo(我使用的是 1.9 版本)。
这里有什么错误?应该如何正确定义图层?如何指示 dojo build 不要覆盖 dojo.js 引导程序?或者排除没有正确声明 - 如果是这样,应该如何声明?