Бросить сообщение gulp-notify, когда gulp-eslint не удается
Я пытаюсь использовать gulp-notify, когда моя задача ESlint обнаруживает ошибки, но я не могу заставить ее работать, поскольку на 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 ответа
Ответ Матье почти верный. Вот как это исправить:
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
Достаточно просто. Счастливого линтинга!
В документации 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());