我使用下面的(1.7)自定义构建配置文件来构建我的发布文件夹.
var profile = {
basePath: "..",
action: "release",
cssOptimize: "comments",
mini: true,
optimize: "closure",
layerOptimize: "closure",
stripConsole: "all",
selectorEngine: "acme",
packages:[
{
name: "dojo",
location: "./../../dojo"
},
{
name: "dijit",
location: "./../../dijit"
},
{
name: "dojox",
location: "./../../dojox"
}
],
layers: {
"dojo/dojo": {
include: [
"dojo/dojo",
"dijit/form/Button",
"dojox/form/TimeSpinner"
],
customBase: true,
boot: true
}
},
resourceTags: {
amd: function (filename, mid) {
return /\.js$/.test(filename);
}
} };
Run Code Online (Sandbox Code Playgroud)
在我的Web应用程序中,我只使用了两个组件,一个是来自'dijit'包的Button,另一个是来自'dojox'的TimeSpinner.所以,我已将这两个组件包含在'dojo/dojo.js'文件中,它正如我所期望的那样工作.
但是release文件夹包含文件夹'dojo','dijit'和'dojox',包含大量文件.
大多数组件未在我的Web应用程序中使用,但它们的文件存在于release文件夹中.即使它们不会被加载到浏览器中(因为AMD),我也不希望在我的发布文件夹中有这样的文件.
我的subversion中没有必要保留如此庞大的文件数量.
所以,我的问题如下:
请帮我...
dojo 构建实用程序并不是要分离文件子集,并且没有这方面的配置。
构建器进行压缩,将遗留模块包装到 amd 样式的声明中,并以缓存模块加载方式组合层。
这意味着一旦您创建了 dojo/dojo、customBase(顺便说一句,这是非常高级的设置,请小心使用)层 - 就会构建依赖关系树。依赖树是一个文件列表,每个文件都被压缩并缝合在一起,类似于以下内容;
// file: dojo/dojo.js
declare(
{cache:
{
"moduleDep_1": dojo.cache("moduleDep_1", {}),
"moduleDep_2": dojo.cache("modu...", .. )
}, "dojo/dojo", null, {
dojo/dojo here
});
Run Code Online (Sandbox Code Playgroud)
如果您的访问者具有您遗漏的基础依赖性怎么办?
不管怎样,旧的构建实用程序有一个功能依赖列表,它在 1.7 构建实用程序中不存在。这会“拯救”你:)
如果您 100% 确定唯一需要的文件是您的图层文件 - 为什么不简单地将单个文件上传到您的网络酒店?