正如问题所述.我知道gulp-uglify可以用一个简单的方法来解释:
gulp.src('filename')
.pipe(uglify())
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉它去掉console.log语句呢?
Fil*_*ill 23
就在这里!正如gulp-uglifyjs文档提到的那样你可以传递额外的选项(gulp-uglifyjs文档):
uglify([filename], [options])
Run Code Online (Sandbox Code Playgroud)
所有可用选项均可在压缩机UglifyJS文档页面上找到.从'drop_console:true'应该有帮助:
uglify([filename], {
compress: {
drop_console: true
}
})
Run Code Online (Sandbox Code Playgroud)
Elg*_*tel 21
更好的是:你可以使用专门的gulp插件:gulp-strip-debug.它不仅删除了控制台语句,还删除了警报和调试器语句.
使用strip-debug从JavaScript代码中剥离控制台,警报和调试器语句
安装使用:
npm install --save-dev gulp-strip-debug
Run Code Online (Sandbox Code Playgroud)
并使用它像:
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'));
});
Run Code Online (Sandbox Code Playgroud)
随着一饮而尽,丑化(不一饮而尽-uglifyjs),你可以通过使用类似的策略去除任意代码编译常数与压缩配置(链接去吞掉-uglifyjs,但应该是相同的一饮而尽,丑化):
.pipe(uglify({
compress: {
global_defs: {
"DEBUG": false
}
}
}))
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中写下类似的内容
if (DEBUG)
{
console.log("Application started...");
//...
}
Run Code Online (Sandbox Code Playgroud)
如果将global_defs中的DEBUG设置为true,gulp-uglify将删除条件但保留内部分支.如果DEBUG设置为false,它将删除两者.
gulp-uglify似乎不支持在Fill的答案中使用drop_console.
| 归档时间: |
|
| 查看次数: |
12020 次 |
| 最近记录: |