2016-03-24 2 views
2

Я пытаюсь использовать gulp-notify, когда моя задача ESlint обнаруживает ошибки, но я не могу заставить ее работать, поскольку gulp-notify нужно ссылаться на канал после некоторого потока Node.js.Бросьте сообщение с сообщением о gulp, когда gulp-eslint не работает

Я могу «сделать его работу» частично с помощью следующего кода:

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

Однако, генерирующего сообщения всегда, не только тогда, когда у меня есть ошибки.

я могу получить ошибки в Глоток-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, когда есть ошибки, что мне нужно сделать глоток-уведомит отправить уведомление внутри вышеуказанного кода. Может кто-нибудь мне помочь?

+0

Я просто нашел решение косвенно из этого Jshint аналогичного вопроса: [JShint вопрос] (http://stackoverflow.com/questions/28115226/cant-make-gulp-notify-to-pop-up-a-error- message-when-gulp-jshint-fail) '' ' gulp.task ('eslint',() => { return gulp.src ([config.js.all, '! app/assets/scripts/vendor/** ']) .pipe (eslint()) .pipe (водопроводчик()) .pipe (eslint.format()) .pipe (eslint.failAfterError()) .on (' ошибка», notify.onError ({сообщение: 'JS error'})); }); '' ' –

ответ

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

Простой достаточно. Счастливые белки!

+0

Но это закончит ваш поток глотков. Любые примеры там, где нет gulp, спасение на 'eslint.failAfterError()'? –