Dojo 1.7自定义构建 - 如何从发布文件夹中删除未使用的文件

9
我使用下面的(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);
    }
} };

在我的Web应用程序中,我只使用了两个组件,一个是来自'dijit'包的Button,另一个是来自'dojox'的TimeSpinner。因此,我已经将这两个组件包含在“dojo/dojo.js”文件中,它的工作效果正如我所期望的那样。
但是发布文件夹包含了'dojo'、'dijit'和'dojox'文件夹及其中大量的文件。
我的Web应用程序中没有使用大多数组件,但它们的文件仍然存在于发布文件夹中。尽管由于AMD不会加载这些组件,但我不想在发布文件夹中保留这样的文件。
在我的子版本控制中维护这样庞大的文件数量是毫无必要的。
那么,我的问题如下:
1.如何从发布文件夹中删除'.uncompressed.js'文件?
2.如何删除未使用组件的文件、CSS和模板,使其不出现在发布文件夹中?
请帮帮我...
2个回答

4
你可以在build.sh的底部添加以下行:
find . -type f -name '*.uncompressed.js' -print0 | xargs -0 rm -rdf

find . -type f -name '*.consoleStripped.js' -print0 | xargs -0 rm -rdf 

这并没有回答问题2。 - James Clark
2
同样的思路,我使用了 find . -name \*.uncompressed.js -type f -delete - Aram Kocharyan
抱歉,这只适用于Linux。 - Manu

2

道场构建工具不适用于分离文件的子集,并且没有此类配置。

该构建工具进行压缩,将旧模块包装成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

});

如果您的访问者有一个基础依赖关系被您省略了怎么办?
无论如何,旧版本构建工具具有功能依赖项列表,但在1.7构建工具中不存在。这将会“拯救”您 :)
如果您100%确定只需要一个图层文件,为什么不直接将该单个文件上传到您的Webhotel?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接