如何从构建中排除 .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 这样的命令删除它们。
通常包含这两个文件的原因是为了帮助调试构建的应用程序。在正常使用期间,这些文件都不会被浏览器下载;它们只会被开发者工具请求。
我需要从我的构建文件中排除 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 这样的命令删除它们。
通常包含这两个文件的原因是为了帮助调试构建的应用程序。在正常使用期间,这些文件都不会被浏览器下载;它们只会被开发者工具请求。