2016-03-24 7 views
2

ESLintタスクでエラーが検出されたときにgulp-notifyを使用しようとしていますが、パイプでgulp-notifyを参照する必要があるため、いくつかのNode.jsストリームの後。gulp-eslintが失敗したときに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()); 

を。

私は、次の構文を使用してゴクゴク-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 question](http://stackoverflow.com/questions/28115226/cant-make-gulp-notify-to-pop-up-a-error- gulp.task( 'eslint'、()=> { )返信gulp.src([config.js.all、 '!app/assets/scripts/vendor]/** ']) .pipe(eslint()) .pipe(配管工()) .pipe(eslint.format()) .pipe(eslint.failAfterError()) .on(' エラー」、 notify.onError({message: '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 

十分に簡単です。ハッピーlinting!

+0

これであなたのギャルプストリームは終了します。 'eslint.failAfterError()'でうんざりすることのない例はありますか? –

関連する問題