2

当我的 ESlint 任务检测到错误时,我正在尝试使用 gulp-notify,但我无法使其工作,因为 gulp-notify 需要在某些 Node.js 流之后用管道引用。

我可以使用以下代码部分“使其工作”:

return gulp.src([config.js.all, '!app/assets/scripts/vendor/**'])
.pipe(eslint())
.pipe(plumber())
.pipe(eslint.format())
.pipe(notify('Error!!!'))
.pipe(eslint.failAfterError());

但是,这总是会抛出消息,不仅是在我遇到错误时。

我可以使用以下语法在 gulp-eslint 中获取错误:

return gulp.src([config.js.all, '!app/assets/scripts/vendor/**'])
.pipe(eslint())
.pipe(plumber())
.pipe(eslint.format())
.pipe(notify('Error!!!'))
.pipe(eslint.result(function (result) {
    if(result.errorCount > 0){
        console.log('Error');
    }
}))
.pipe(eslint.failAfterError());

当出现错误时,它会返回 console.log,我需要的是让 gulp-notify 在上面的代码中发送通知。有人可以帮助我吗?

4

2 回答 2

2

Mathieu 的回答几乎是正确的。以下是解决方法:

return gulp.src([config.js.all, '!app/assets/scripts/vendor/**'])
  .pipe(eslint())
  .pipe(plumber())
  .pipe(eslint.format())
  .pipe(eslint.failAfterError())
  .on("error", notify.onError('Error!!!')); // <-- notify after eslint.failAfterError

很简单。快乐的棉绒!

于 2016-05-09T16:54:41.247 回答
0

gulp-notify 文档提供了一些示例。在您的情况下,它应该如下所示:

return gulp.src([config.js.all, '!app/assets/scripts/vendor/**'])
.pipe(eslint())
.pipe(plumber())
.pipe(eslint.format())
.on("error",notify.onError('Error!!!'))
.pipe(eslint.failAfterError());
于 2016-03-24T18:48:11.103 回答