Dojo层不包含所有必需品

时间:2012-03-01 15:03:50

标签: dojo-build dojo

我有一个使用

的示例脚本
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" ] ]
}

是的,构建器编译我在html页面中包含的巨大的dojo.js文件,但仍然有很多xhr请求。系统加载我没有明确使用的脚本。这是一个screenshot

1 个答案:

答案 0 :(得分:2)

有趣。

您确定浏览器是否成功查找并加载了压缩版本?

浏览器正在寻找_base.js,它肯定已经被烘焙到该文件中。

<强>更新

Tommi - dojo.js图层总是由构建系统构建,您不必显式声明它。我不确定你明确地将它与依赖项一起声明会产生什么影响。这可能有效,但可能没有。也许依赖关系覆盖了正常的dojo.js内容。

我通常做的只是让系统构建dojo.js,然后创建一个包含我可能需要的所有dijit / dojox东西的层,并进行部署。我通常还会在其中创建第三个单独的文件。

我会试试。我认为关键是从dojo.js创建一个单独的层。 (但仍然在页面中包含正常的dojo.js。)