我正在使用grunt-bbb来处理我正在处理的JavaScript项目。我喜欢使用grunt对UglifyJS的支持来使用条件编译,但我似乎无法让它工作。我正在尝试将defines
选项传递给uglify任务,但它似乎没有工作。
我的grunt.js文件如下:
module.exports = function (grunt) {
grunt.initConfig({
// ... config options ...
uglify: {
"mangle": {
"defines": {"DEBUG": false}
}
},
// ... more configs ...
});
// ... custom tasks ...
grunt.registerTask("release", "default min mincss");
};
我也尝试将except
属性添加到mangle
对象中,这似乎也不起作用(它仍会破坏文件......)UglifyJS显然正在运行,但它似乎没有传递选项。我也挖掘了代码,当我console.log(grunt.config('uglify'));
我得到
{ mangle: { defines: { DEBUG: false } } }
对我来说是正确的......
任何想法???
答案 0 :(得分:4)
目前这对我有用:
uglify: {
options: {
compress: {
global_defs: {
APP_DEBUG: false
}
}
}
}
将它放在compress选项中,在这种情况下,它将设置APP_DEBUG=false
我从这里得到了这个解决方案:https://github.com/gruntjs/grunt-contrib-uglify/issues/12
答案 1 :(得分:1)
我向Grunt提交了issue,而且问题出在Uglify内部(实际处理defines
参数的方式与文档相矛盾)。
以下代码有效:
uglify: {
mangle: {
defines: {
DEBUG: ['name', 'true']
}
}
}