【问题标题】:How to exclude files from Dojo's Build System?如何从 Dojo 的构建系统中排除文件?
【发布时间】:2013-10-24 22:33:00
【问题描述】:

我正在关注official documentation page about the topic,但我无法将其配置为忽略.txt 文件。

我的项目根目录上有一个all.profile.js

var profile = (function(){
    return {
        basePath: "./",
        releaseDir: "../web",
        action: "release",
        layerOptimize: "closure",
        optimize: "closure",
        cssOptimize: "comments",
        mini: true,
        stripConsole: "all",

        packages: [
            { name: "myapp", location: "myapp" }
        ]
    };
})();

这是myapp文件夹中的package.json

{
    "dojoBuild": "myapp.profile.js",
    "name": "my-app",
    "description": "This is My App",
    "version": "1.0",
    "main": "src"
}

这是myapp.profile.js,也在文件夹myapp中:

var profile = (function(){
    return {
        // don't need to do anything on the 'test' folder so don't define it on the trees.
        trees: [
            ["libs","libs",/txt$/], // ignore .txt files -> DOESN'T WORK!
            ["src","src",/txt$/]    // ignore .txt files -> DOESN'T WORK!
        ],
        resourceTags: {
            test: function(filename, mid){
                console.log("[test] filename: ",filename);
                return filename.indexOf("test/") !== -1;
            },
            copyOnly: function(filename, mid){
                //console.log("[copyOnly] mid: ",mid);
                return false;
            },
            miniExclude: function (filename, mid) {
                console.log("[miniExclude] filename: ",filename);
                return mid in {
                    'myapp/myapp.profile': 1,
                    'myapp/package.json': 2
                } || mid.indexOf(".txt") !== -1; // .txt are not ignored so exclude them...
            },
            amd: function(filename, mid) {
                //console.log("[amd] mid: ",mid);
                // myapp is not AMD but this will 'convert' it
                return false;
            }
        }
    };
})();

最后,这是文件夹结构:

web_dev/
-- myapp/
---- libs/
---- src/
---- test/
---- myapp.profile.js
---- package.json
-- all.profile.js

构建工具运行良好,它读取并处理所有文件,但 .txt 文件仍在发布目录中。

如果您发现我的逻辑或我如何配置构建系统有任何错误,请告诉我。我正在使用 Dojo 1.9.1。

提前致谢。

【问题讨论】:

    标签: javascript dojo amd dojo-build


    【解决方案1】:

    我不确定我的初始方案有什么问题,但以下是我为获得预期结果所做的更改:

    1. trees 声明从myapp.profile.js 移至 all.profile.js 在“myapp”包定义中。
    2. 不是指定树的根,而是检查 一切并相应地排除:[".", ".", /(\/\.)|(~$)|(test|txt)/]

    最后的all.profile.js

    var profile = {
        basePath: "./",
        releaseDir: "../web",
        releaseName: "built",
        action: "release",
        layerOptimize: "closure",
        optimize: "closure",
        cssOptimize: "comments",
        mini: true,
        stripConsole: "all",
    
        packages: [
            {
                name: "myapp",
                location: "myapp",
                trees: [
                    // don't bother with .hidden, tests and txt.
                    [".", ".", /(\/\.)|(~$)|(test|txt)/]
                ]
            }
        ]
    };
    

    如果有人能准确指出我做错了什么,请分享。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 2012-07-27
      相关资源
      最近更新 更多