【问题标题】:Throw a gulp-notify message when gulp-eslint fails当 gulp-eslint 失败时抛出 gulp-notify 消息
【发布时间】:2016-03-24 18:32:57
【问题描述】:

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

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

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

【问题讨论】:

  • 我刚刚从这个 Jshint 类似的问题中间接找到了解决方案:JShint question ``` gulp.task('eslint', () => { return gulp.src([config.js.all , '!app/assets/scripts/vendor/**']) .pipe(eslint()) .pipe(plumber()) .pipe(eslint.format()) .pipe(eslint.failAfterError()) .on ('error', notify.onError({ message: 'JS error'})); }); ```

标签: javascript node.js gulp gulp-notify


【解决方案1】:

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!

【讨论】:

  • 但这会结束你的 gulp 流。有没有在eslint.failAfterError() 处解救的例子?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多