Wie kann ich eine Grunt-Aufgabe überspringen, wenn ein Verzeichnis leer ist?

8

Ich benutze die Module concat und uglify von grunt-contrib, um etwas Javascript zu verarbeiten. Derzeit, wenn src/js/ leer ist, werden sie immer noch eine (leere) concat'd-Datei zusammen mit der verkleinerten Version und einer Quellkarte erstellen.

Ich möchte eine Aufgabe ausführen, um festzustellen, ob der Ordner src/js/ leer ist, bevor Sie fortfahren, und wenn dies der Fall ist, sollte die Aufgabe übersprungen werden (nicht fehlschlagen). Irgendwelche Ideen wie man das macht?

    
jtfairbank 18.03.2014, 00:05
quelle

3 Antworten

3

Die Lösung mag nicht die schönste sein, aber könnte Ihnen eine Idee geben. Sie müssen etwas wie npm install --save-dev glob zuerst ausführen. Dies basiert auf einem Teil des von Ihnen erwähnten Projekts Milkshake .

%Vor%

Zum Vergleich: Ссылка

    
Kosmotaur 24.03.2014, 21:16
quelle
2

Mit diesem Plugin:

Ссылка

Sie können die Dateiexistenz prüfen. (Ich habe es nicht versucht, aber die Quelle sieht aus wie unterstützende Grunt erweitert. (*, ** ...)

Zum Beispiel so:

%Vor%

Aber vielleicht, wenn die Datei nicht existiert, wird sie mit einem Fehler anstelle eines einfachen Überspringens fehlschlagen. (Ich habe es nicht getestet.)

Wenn dies ein Problem ist, können Sie die Quelle dieses Plugins etwas ändern, um die zugehörige Aufgabe auszuführen, wenn die Datei existiert:

Die Konfiguration:

%Vor%

Und Sie sollten das hinzufügen:

%Vor%

In dieser Datei:

Ссылка

nach dieser Zeile:

%Vor%     
Lajos Veres 22.03.2014 09:16
quelle
1

Vielleicht ist das nur eine aktuellere Antwort, da die anderen mehr als ein Jahr alt sind, aber Sie brauchen dafür kein Plugin; Sie können grunt.file.expand verwenden, um zu testen, ob Dateien mit einem bestimmten Globbing-Muster existieren.

Update von @ Kosmotaurs Antwort (Pfad ist hier nur ein einfacher Code zur Vereinfachung):

%Vor%     
Marc Stober 07.01.2016 14:09
quelle