2016-03-24 15 views
2

Ich versuche gulp-notify zu verwenden, wenn meine ESlint-Aufgabe Fehler erkennt, aber ich kann es nicht funktionieren, da gulp-notify mit einer Pipe referenziert werden muss nach einigen Node.js Stream.Werfen Sie eine Meldung gulp-notify, wenn gulp-eslint fehlschlägt

Ich kann teilweise mit dem folgenden Code „es funktioniert“:

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

jedoch, der die Nachricht immer wirft, nicht nur, wenn ich Fehler haben.

Ich kann die Fehler in schluck-eslint erhalten mit folgender Syntax:

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

Dass mich console.log zurückgibt, wenn es Fehler gibt, was ich brauche, ist schluck-notify eine Mitteilung zu machen, senden innerhalb des obigen Codes. Könnte mir jemand helfen?

+0

Ich habe gerade die Lösung indirekt aus dieser JShint ähnlichen Frage gefunden: [JShint question] (http://StackOverflow.com/questions/28115226/cant-make-gulp-notify-to-pop-up-a-error- message-when-gulp-jshint-fail) '' ' gulp.task ('eslint',() => { zurück gulp.src ([config.js.all, '! app/assets/scripts/vendor/** ']) .pipe (eslint()) .pipe (Klempner()) .pipe (eslint.format()) .pipe (eslint.failAfterError()) .on (' Fehler‘, notify.onError ({Nachricht: 'JS Fehler'})); }); '' ' –

Antwort

0

gulp-notify documentation gibt ein paar Beispiele. in Ihrem Fall, sollte es so aussehen:

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 fast richtig ist. Hier ist, wie Sie es beheben können:

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 

Einfach genug. Glückliches Linting!

+0

Aber das wird deinen Schluck Stream beenden. Irgendwelche Beispiele da draußen ohne Schluck bei 'eslint.failAfterError()'? –

Verwandte Themen