我想在构建时删除我的DEBUG语句,我注意到http://lisperator.net/uglifyjs/compress我可以定义global_defs: { DEBUG : false }
来删除调试子句中包含的任何内容if (DEBUG) {}
我的uglify任务似乎没有删除任何DEBUG部分,对我做错的任何想法?
我正在使用grunt-contrib-uglify v0.3.3
这是我的 grunt任务: ...
uglify: {
...
simple: {
options : {
mangle: false,
compress: {
global_defs: {
DEBUG: false
},
dead_code: true
}
},
files: {
'yayMin.js' : [ ..., somefile.js, ... ]
}
},...
...
somefile.js
...
if (DEBUG) {
console.log('epic fail - fix your build');
}
...
答案 0 :(得分:2)
同时查看grunt-groundskeeper,删除这样写的编译指示:
// <debug>
doSomething();
// </debug>
// <validation>
performSomeValidationOnlyNeededDuringDevelopment();
// </validation>
它还可以选择删除对console.log()
和debugger;
语句的调用。
答案 1 :(得分:1)
grunt-contrib-uglify中似乎存在一个错误,它只从一个文件中删除了global_def。我注意到,如果我将文件缩减到一个文件
,将根据选项的要求删除DEBUG语句不起作用:
...
files: {
'yayMin.js' : [ ..., anotherfile.js, somefile.js, anotherfile2.js, ... ]
}
...
曾为:
...
files: {
'yayMin.js' : [ somefile.js ]
}
...
最终Grunt任务
uglify: {
'build-minify' : {
options: {
mangle: false,
compress: {
global_defs: {
DEBUG: false
},
dead_code: true
},
wrap: true
},
files : {
'justSayNoToDebug.js' : [
'ahHaveDebugsInMe.js'
]
}
},