Javascript 在Grunt上执行uglifyjs任务期间有条件地删除调试
我想在构建时删除我的调试语句,我注意到我可以定义Javascript 在Grunt上执行uglifyjs任务期间有条件地删除调试,javascript,node.js,gruntjs,uglifyjs,grunt-contrib-uglify,Javascript,Node.js,Gruntjs,Uglifyjs,Grunt Contrib Uglify,我想在构建时删除我的调试语句,我注意到我可以定义global_defs:{DEBUG:false}来删除包含在调试子句if(DEBUG){} 我的丑陋任务似乎没有删除任何调试部分,对我做错了什么有什么想法 我正在使用grunt contrib uglify v0.3.3 这是我的咕噜任务: somefile.js ... if (DEBUG) { console.log('epic fail - fix your build'); } ... grunt con
global_defs:{DEBUG:false}
来删除包含在调试子句if(DEBUG){}
我的丑陋任务似乎没有删除任何调试部分,对我做错了什么有什么想法
我正在使用grunt contrib uglify v0.3.3
这是我的咕噜任务:
somefile.js
...
if (DEBUG) {
console.log('epic fail - fix your build');
}
...
grunt contrib uglify中似乎有一个bug,它只从一个文件中删除全局定义。我注意到,如果我将文件缩减为一个文件,调试语句将按照选项的要求被删除 不起作用:
...
files: {
'yayMin.js' : [ ..., anotherfile.js, somefile.js, anotherfile2.js, ... ]
}
...
工作:
...
files: {
'yayMin.js' : [ somefile.js ]
}
...
最后的咕噜任务
uglify: {
'build-minify' : {
options: {
mangle: false,
compress: {
global_defs: {
DEBUG: false
},
dead_code: true
},
wrap: true
},
files : {
'justSayNoToDebug.js' : [
'ahHaveDebugsInMe.js'
]
}
},
另外,请查看哪些删除了这样编写的杂注:
// <debug>
doSomething();
// </debug>
// <validation>
performSomeValidationOnlyNeededDuringDevelopment();
// </validation>
//
doSomething();
//
//
执行部分验证OnlyneededDuringDevelopment();
//
它还可以选择删除对
console.log()
和调试器的调用代码>语句。ughhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
// <debug>
doSomething();
// </debug>
// <validation>
performSomeValidationOnlyNeededDuringDevelopment();
// </validation>