[英]Browserify errors ending gulp watch task
我在gulpfile.js中有以下设置:
gulp.task('browserify', function() {
browserify(config.paths.browserifyEntry)
.transform(reactify)
.bundle()
.pipe(source('master.js'))
.pipe(gulp.dest(config.paths.dist))
//.pipe(connect.reload());
});
gulp.task('watch', function () {
gulp.watch(config.paths.components, ['browserify']);
gulp.watch(config.paths.sassSource, ['sass']);
});
这一切都很有效,直到我编写的代码导致浏览器出错。 这种情况经常发生,因为我在一个文件中编辑代码,这取决于我还没有在另一个文件中进行的更改,浏览器出错。
问题是当浏览器出错时,它结束了监视任务。 我希望当浏览器出错时,它根本无法完成它的任务,但是手表会继续,以便当我进行其他更改以使browserify成功运行时,它会这样做。 进行更改然后重新加载浏览器并发现当代码处于错误状态时,由于浏览器化错误导致监视进程结束,这是有问题的。
有没有办法吞下该错误,以便它不会停止监视过程? 或者是否有另一个npm包来监视文件并且不会因browserify错误而被绊倒?
如果您不处理error
事件,则流将抛出。 您可以直接处理该事件:
gulp.task('browserify', function() {
browserify(config.paths.browserifyEntry)
.transform(reactify)
.bundle()
.on('error', console.error.bind(console))
.pipe(source('master.js'))
.pipe(gulp.dest(config.paths.dist));
});
或者你可以在它抛出后捕获错误:
process.on('uncaughtException', console.error.bind(console));
对于Browserify流,您需要在错误处理程序中调用emit
:
gulp.task('browserify', function() {
browserify(config.paths.browserifyEntry)
.transform(reactify)
.bundle()
.on('error', function (error) {
console.error(error.toString())
this.emit('end')
})
.pipe(source('master.js'))
.pipe(gulp.dest(config.paths.dist));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.