2016-10-11 1 views
3

ich schluck-stylefmt verwenden und es jedes Mal, wenn ich jede CSS-Datei zu speichern laufen:Ich mag automatisch auf meine CSS-Quelldateien beheben, aber ich erhalte eine Endlosschleife

function stylelint() { 
    return gulp.src('src/**/*.css') 
    .pipe($.stylefmt()) 
    .pipe(gulp.dest('src/')); 
} 

Zur selben Zeit gulp.watch Uhren der Pfad src/**/*.css und führen Sie stylelint Aufgabe erneut aus.

Console Ausgabe:

[16:32:24] Starting 'stylelint'... 
[16:32:25] Finished 'stylelint' after 554 ms 
[16:32:25] Starting 'stylelint'... 
[16:32:25] Finished 'stylelint' after 60 ms 
[16:32:25] Starting 'stylelint'... 
[16:32:25] Finished 'stylelint' after 33 ms 
[16:32:25] Starting 'stylelint'... 
[16:32:25] Finished 'stylelint' after 36 ms 
[16:32:26] Starting 'stylelint'... 
[16:32:26] Finished 'stylelint' after 34 ms 
[16:32:26] Starting 'stylelint'... 
[16:32:26] Finished 'stylelint' after 29 ms 
[16:32:26] Starting 'stylelint'... 
[16:32:26] Finished 'stylelint' after 27 ms 
[16:32:26] Starting 'stylelint'… 
[16:32:26] Finished 'stylelint' after 32 ms 

Es gibt eine Möglichkeit, dieses Verhalten zu korrigieren und stylelint Aufgabe nur einmal ausführen?

UPD. Ich fügte hinzu gulp-cached und jetzt läuft es nur zweimal. Kann ich es verbessern, um einmal zu laufen?

function stylelint() { 
    return gulp.src('src/**/*.css') 
    .pipe($.cached('stylelint')) 
    .pipe($.stylefmt()) 
    .pipe($.cached('stylelint')) 
    .pipe(gulp.dest('src/')); 
} 
+4

Mögliche Duplikat [GULP: Ändern eines überwachten Datei an Ort und Stelle ohne eine Endlosschleife verursacht] (http: // Stackoverflow. com/questions/37602702/gulp-modify-a-watch-Datei-in-Place-ohne-verursacht-eine-Endlos-Schleife) –

+0

@SvenSchoenung Danke, aber es half teilweise. Besser als nichts. Jetzt läuft es nur zweimal :) Soll ich meine Frage löschen? Ich bin neu hier. –

+1

Bearbeitete die Antwort mit einer Lösung, die die Aufgabe nur einmal ausführen sollte. –

Antwort

1

Ich denke, dass ich die Lösung 1 durch @SvenSchoenung wiederholt mit seit und gulp.lastRun. In meinem Fall habe ich es tat, ohne schluck-cached, aber ich benutze gulp4

function stylelint() { 
    return gulp.src('src/**/*.css', {since: gulp.lastRun(stylelint)}) 
.pipe($.stylefmt()) 
.pipe(gulp.dest('src/')); 
} 
Verwandte Themen