我有一个使用
的示例脚本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
答案 0 :(得分:2)
有趣。
您确定浏览器是否成功查找并加载了压缩版本?
浏览器正在寻找_base.js,它肯定已经被烘焙到该文件中。
<强>更新强>
Tommi - dojo.js图层总是由构建系统构建,您不必显式声明它。我不确定你明确地将它与依赖项一起声明会产生什么影响。这可能有效,但可能没有。也许依赖关系覆盖了正常的dojo.js内容。
我通常做的只是让系统构建dojo.js,然后创建一个包含我可能需要的所有dijit / dojox东西的层,并进行部署。我通常还会在其中创建第三个单独的文件。
我会试试。我认为关键是从dojo.js创建一个单独的层。 (但仍然在页面中包含正常的dojo.js。)