如何从构建中排除 .js.map?

How to exclude .js.map from build?

我需要从我的构建文件中排除 ending/containing

.js.map  

.js.uncompressed.js

我正在尝试使用一些 regex 但没有成功

        ignore: function(t) {
            return /\.js.map$/.test(t)
        },
        miniExclude: function(t) {
            return /\.js.map$/.test(t)
        }

我正在使用 DOJO 1.10。

我做错了什么?


var profile = function() {
    return {
        basePath: "../",
        releaseDir: "dist",
        releaseName: "build",
        optimize: "closure",
        action: "release",
        layerOptimize: "closure",
        copyTests: !1,
        stripConsole: "all",
        version: "ntv-0.0.0",
        cssOptimize: "comments",
        mini: !0,
        staticHasFeatures: {
            "dojo-trace-api": !1,
            "dojo-log-api": !1,
            "dojo-publish-privates": !1,
            "dojo-sync-loader": !1,
            "dojo-xhr-factory": !1,
            "dojo-test-sniff": !1
        },
        resourceTags: {
            amd: function(t) {
                return /\.js$/.test(t)
            },
            ignore: function(t) {
                return /\.js.map$/.test(t)
            },
            miniExclude: function(t) {
                return /\.js.map$/.test(t)
            }
        },
        packages: [{
            name: "dojo",
            location: "dojo"
        }, {
            name: "test",
            location: "test"
        }],
        layers: {
            "dojo/dojo": {
                include: ["dojo/dojo"],
                customBase: !0,
                boot: !0
            },
            "test/c": {
                include: ["test/c/c"],
                customBase: !0,
                boot: !1
            },
            "test/b": {
                include: ["test/b/b"],
                customBase: !0,
                boot: !1
            },
            "test/a": {
                include: ["test/a/a"],
                customBase: !0,
                boot: !1
            }
        }
    }
}();
"asd.js.uncompressed.js".match(/.{1,}\.(js\.map|js\.uncompressed\.js)$/g) //match
"khaslkda.js.map".match(/.{1,}\.(js\.map|js\.uncompressed\.js)$/g) //match
"khaslkda.map".match(/.{1,}\.(js\.map|js\.uncompressed\.js)$/g) // no match
"khaslkda.map.js".match(/.{1,}\.(js\.map|js\.uncompressed\.js)$/g) //no match

我不太懂道场。但这个正则表达式可能对你有帮助?

编辑:我使用了 match.. 但它应该也适用于测试。 就这样做

/.{1,}\.(js\.map|js\.uncompressed\.js)$/g.test("as-_d.js.uncompressed.js") //true

首先,问题中使用的 "exclude" 这个词不太准确。这些是 构建系统生成的文件 - 它们不是首先要排除在外的源文件中存在的文件。

如果您不希望构建生成源映射,请在您的构建配置文件中设置 useSourceMaps: false

至于 *.uncompressed.js 文件,构建会为它缩小的任何模块或层自动生成这些文件。如果你真的不希望它们出现在构建输出中,你需要在之后使用评论中建议的像 frank 这样的命令删除它们。

通常包含这两个文件的原因是为了帮助调试构建的应用程序。在正常使用期间,这些文件都不会被浏览器下载;它们只会被开发者工具请求。