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