当gulp-eslint失败时抛出gulp-notify消息

时间:2016-03-24 18:32:57

标签: javascript node.js gulp gulp-notify

当我的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在上面的代码中发送通知。有人能帮助我吗?

2 个答案:

答案 0 :(得分:2)

Mathieu's answer几乎是正确的。以下是修复方法:

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

足够简单。快乐的linting!

答案 1 :(得分:0)

gulp-notify documentation举了几个例子。在你的情况下,它应该是这样的:

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());