我的 Gulp 设置在其他方面工作得非常好,但如果我的 JS 文件出现错误,它就会停止。在 Gulp 4 最终发布之前,我们都被 Gulp 中不那么完美的错误系统所困……那么我怎样才能捕捉到 Uglify 的错误呢?
gulp.task('js', function() {
return gulp
.src(inputJS)
.pipe(sourcemaps.init())
.pipe(concat('main.js'))
.pipe(uglify(uglifyOptions))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest(outputJS))
});
根据Uglify 文档,gulp-uglify
如果无法缩小特定文件,则会发出“错误”事件。只要有可能,该PluginError
对象将包含以下属性:fileName
、lineNumber
、message
。
我最接近工作的是:.on('error', function(uglify) { console.error(uglify.message) }))
,但它最终导致上述 Gulp 任务不再执行。
编辑:我意识到有许多 Gulp 扩展在处理错误处理时会有所帮助(例如Gulp-Util、Stream-Combiner2、Gulp-Plumber等),但我不希望安装一个全新的扩展Uglify(没有一个我处理我的 Sass 错误就好了)。