Gulp 能吞下丑陋的console.log语句吗?

Gulp 能吞下丑陋的console.log语句吗?,gulp,Gulp,正如问题所述。我知道大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口 gulp.src('filename') .pipe(uglify()) 有没有办法告诉它也删除console.log语句?有! 正如gulp uglifyjs文档提到的,您可以传递额外的选项(): 可在上找到所有可用选项。从“drop_console:true”可以帮助: uglify([filename], { compress: {

正如问题所述。我知道大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口

gulp.src('filename')
.pipe(uglify())
有没有办法告诉它也删除console.log语句?

有! 正如gulp uglifyjs文档提到的,您可以传递额外的选项():

可在上找到所有可用选项。从“drop_console:true”可以帮助:

uglify([filename], {
    compress: {
         drop_console: true
    }
})

更好的是:您可以使用专门的gulp插件:。它不仅删除了控制台语句,还删除了警报和调试器语句

使用

使用以下方式安装:

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,但对于gulp uglify应该是相同的):

然后在代码中编写如下内容

if (DEBUG)
{
    console.log("Application started...");
    //...
}
如果将DEBUG in global_defs设置为true,gulp uglify将删除条件,但保留内部分支。如果DEBUG设置为false,它将同时删除这两个选项


drop_console as in Fill的答案在gulp uglify中似乎不受支持。

此插件已被弃用,并提到gulp uglifyjs选项仍然有效(减去有关sourcemaps的内容)。是的,此选项似乎仍然有效,同样适用于gulp uglify(没有JS)。转到并遵循“缩小选项”链接。在“压缩选项”一节中,它说“drop_console(默认值:false)--传递true以放弃对console.*函数的调用。”@fill是认真的吗?@steo严肃的关于什么?关于已删除的注释。gulp-strip-debug似乎不支持sourcemaps。。。
.pipe(uglify({
    compress: {
        global_defs: {
            "DEBUG": false
        }
    }
}))
if (DEBUG)
{
    console.log("Application started...");
    //...
}