[英]Conditionally removing DEBUG during uglifyjs task on Grunt
我想在构建时删除我的DEBUG语句,我注意到http://lisperator.net/uglifyjs/compress我可以定义global_defs: { DEBUG : false }
来删除调试子句中包含的任何内容if (DEBUG) {}
我的uglify任务似乎没有删除任何DEBUG部分,任何关于我做错的想法?
我正在使用grunt-contrib-uglify v0.3.3
这是我的笨拙任务: ......
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');
}
...
另请查看grunt-groundskeeper ,删除这样编写的pragma:
// <debug>
doSomething();
// </debug>
// <validation>
performSomeValidationOnlyNeededDuringDevelopment();
// </validation>
它还具有删除对console.log()
和debugger;
调用的选项debugger;
声明。
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'
]
}
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.