Ich habe eine Schluckaufgabe, die verkettete JS-Dateien generiert. Ich verwende eine Überwachung, um Änderungen an allen Dateien im Projekt zu erkennen, und möchte, dass die Concat-Task die Dateien nur dann neu verkettet, wenn sich die Quelldateien seit der letzten Ausführung geändert haben.
Hinweis: Ich könnte genauere Watch-Befehle verwenden, aber in meinem realen Produktionsfall erzeugen wir mehrere konkatenierte JS-Dateien aus mehreren Kombinationen von Quell-JS-Dateien, so dass das Erstellen von Watches und Tasks für jede dieser Komponenten viel komplexer ist >
In etwa so:
%Vor%Ich dachte über die Verwendung eines Lazypipe für die letzten zwei Schritte nach, so dass ich nur die concat und dest ausführen, wenn es Dateien gibt, aber ich weiß nicht wie:
Ich weiß, ich könnte Schluck-Erinnerung für den zweiten Teil verwenden, aber in meinem Produktionsfall wäre es viel sauberer, den Stream einfach neu aufzubauen, wenn das möglich ist.
Wer hat das schon einmal gemacht oder irgendwelche Tipps für den Anfang?
Der Code in moettingers Antwort (zum Zeitpunkt der Erstellung) ist falsch. Hier ist der zurückzugebende Stream:
%Vor% Beim Testen gegen ein einzelnes Ziel muss dem Aufruf newer()
ein Pfad übergeben werden, der relativ zum aktuellen Verzeichnis (oder einem absoluten Pfad) ist. Es kann kein Pfad sein, der mit dem in gulp.dest()
angegebenen Pfad interpretiert werden soll. Mit dem Aufruf newer('app.js')
führt der Aufruf newer
immer dazu, dass concat
ausgeführt wird, weil die Datei nicht gefunden wird.
Die Dokumentation gibt ein ähnliches Beispiel .
Obwohl dies eine alte Frage ist, dachte ich, ich würde einfach zu den Schluck-neueren Informationen hinzufügen. Gulp-neuere erkennt Änderungen basierend auf dem Zeitstempel der Dateien. Wenn eine Datei gelöscht wird, wird diese Änderung vom gulp-neuere nicht übernommen.
Aus diesem Grund suche ich die Caching-Route lieber als neuere, da ich meine Haupt-concated-Datei generiert werden muss, wenn eine der CSS-Dateien gelöscht oder geändert wird, aber Schluck neuer unterstützt nicht all dies.
Tags und Links gulp gulp-watch