错误:应用dojo构建后的defineAlreadyDefined

时间:2013-07-19 12:56:50

标签: dojo dojo-build dojo-1.9

我已按照http://www.sitepen.com/blog/2012/06/11/dgrid-and-dojo-nano-build/的说明创建了自己的构建配置文件。我为dojo创建了bootstrap层:

    '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构建不覆盖dojo.js引导程序?或者未正确声明排除 - 如果是,应该如何声明?

1 个答案:

答案 0 :(得分:3)

设置boot: true会导致包含加载程序。仅在要包含boot: true函数的图层上设置define