Условная компиляция с использованием UglifyJS + GruntJS
Я использую grunt-bbb для проекта JavaScript, над которым я работаю. Я бы хотел использовать условную компиляцию, используя поддержку grunt для UglifyJS, но я не могу заставить ее работать. Я пытаюсь передать defines
возможность убрать задачу, но она не работает.
Мой файл 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 } } }
что выглядит правильно для меня...
Какие-нибудь мысли???
2 ответа
Я отправил вопрос в Grunt, и, видимо, проблема в Uglify (как defines
параметр фактически обрабатывается противоречит документам).
Этот следующий код работает:
uglify: {
mangle: {
defines: {
DEBUG: ['name', 'true']
}
}
}
Это то, что в настоящее время работает для меня:
uglify: {
options: {
compress: {
global_defs: {
APP_DEBUG: false
}
}
}
}
установка опции сжатия работает, в этом случае она установит APP_DEBUG=false
Я получил это исправление здесь: https://github.com/gruntjs/grunt-contrib-uglify/issues/12