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

时间:2012-05-21 09:30:32

标签: dojo dojo-build

我使用下面的(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'文件中,它正如我所期望的那样工作。

但是release文件夹包含文件夹'dojo','dijit'和'dojox'以及大量文件。

我的Web应用程序中没有使用大多数组件,但它们的文件存在于release文件夹中。 即使它们不会被加载到浏览器中(因为AMD),我也不希望在我的发布文件夹中包含这些文件。

没有必要在我的颠覆中维护如此庞大的文件数。

所以,我的问题如下:

  1. 如何从发布文件夹中删除“.uncompressed.js”文件?
  2. 如何从发布文件夹中删除未使用组件的文件,CSS,模板?
  3. 请帮帮我......

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分:2)

dojo构建实用程序并不是要分离文件的子集,也不是为此配置。

构建器进行压缩,它将传统模块包装到amd样式的声明中,并以缓存的模块加载方式组合层。

这意味着一旦你创建了dojo / dojo,customBase(这是高级设置btw,小心使用)层 - 构建了一个依赖树。依赖关系树是一个文件列表,每个文件都被压缩并缝合在一起,类似于以下内容;

// file: dojo/dojo.js
declare(
  {cache: 
     {
      "moduleDep_1": dojo.cache("moduleDep_1", {}),
      "moduleDep_2": dojo.cache("modu...", .. )
     }, "dojo/dojo", null, {

  dojo/dojo here

});

如果您的访问者具有您遗漏的基础依赖性该怎么办?

无论如何,旧的构建实用程序有一个功能dependencyList,它不存在于1.7 build实用程序中。这样可以“保存”你:)

如果您100%确定所需的唯一文件是您的图层文件 - 为什么不将该单个文件上传到您的网站?