使用gulp-plumber捕获错误,结果卡住不能继续执行的解决办法

我们使用gulp-plumber捕获gulp-autoprefixer、gulp-sass、gulp-less等插件处理css文件中产生的错误,避免整个进程因为css文本中的错误而crash掉,但是当把gulp-autoprefixer升级到3.0后会发现,gulp-plumber在捕获错误后会卡住不能继续执行任务,并抛出handle error的提示。
原来网上的gulp教程告诉我们使用gulp-plumber时一般都是直接使用.pipe(plumber()),但实际上,某些插件的流抛出错误事件后,并不会同时抛出结束事件,因此plumber就会卡住。
所以我们要通过plumber的errorHandler方法来给流抛出一个流结束事件。

gulp.src('./less/**/*.less')
  .pipe(plumber({
    errorHandler: function(err) {
      console.log(err);
      this.emit('end');
    }
  }))
  .pipe(less)
  .dest(gulp.dest('./build'));

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...