Как говорится в этом вопросе. Я знаю, что gulp -uglify может uglify с помощью простого:
gulp.src('filename')
.pipe(uglify())
Есть ли способ сообщить об этом также и для команд console.log?
Как говорится в этом вопросе. Я знаю, что gulp -uglify может uglify с помощью простого:
gulp.src('filename')
.pipe(uglify())
Есть ли способ сообщить об этом также и для команд console.log?
Гораздо лучше: вы можете использовать специализированный плагин gulp: gulp-strip-debug. Он не только отделяет консольные операторы, но также выводит предупреждения и отладчики.
Инструкции консоли консоли, предупреждения и отладчика из кода JavaScript с strip-debug
установите его, используя:
npm install --save-dev gulp-strip-debug
и используйте его как:
var gulp = require('gulp');
var stripDebug = require('gulp-strip-debug');
gulp.task('default', function () {
return gulp.src('src/app.js')
.pipe(stripDebug())
.pipe(gulp.dest('dist'));
});
Да, есть! Как упоминается в документации gulp -uglifyjs, вы можете передать дополнительные параметры (gulp -uglifyjs documentation):
uglify([filename], [options])
Все доступные параметры можно найти на странице документации компрессора UglifyJS. Из этого "drop_console: true" следует помочь:
uglify([filename], {
compress: {
drop_console: true
}
})
С gulp-uglify (не gulp -uglifyjs) вы можете удалить произвольный код, используя стратегию, похожую на константы компиляции с конфигурацией сжатия (ссылка идет на gulp -uglifyjs, но должен быть одинаковым для gulp -uglify):
.pipe(uglify({
compress: {
global_defs: {
"DEBUG": false
}
}
}))
И тогда в коде напишите что-нибудь вроде
if (DEBUG)
{
console.log("Application started...");
//...
}
если вы установите для DEBUG в global_defs значение true, gulp -uglify удалит условное выражение, но оставит внутреннюю ветвь. Если DEBUG установлен в значение false, он удалит оба.
drop_console, как и в ответе Fill, похоже, не поддерживается в gulp -uglify.