Wie JavaScript-Dateien Komprimierung mit YUI Compressor automatisieren?
-
03-07-2019 - |
Frage
YUI Compressor keine Wildcard-Parameter akzeptieren, so kann ich es nicht so laufen:
C:>java -jar yuicompressor.jar *.js
Aber ich habe mehr als 500 Dateien und würde lieber nicht eine Batch-Datei wie folgt erstellen müssen:
C:>java -jar yuicompressor.jar file1.js -o deploy\file1.js
C:>java -jar yuicompressor.jar file2.js -o deploy\file2.js
...
C:>java -jar yuicompressor.jar file500.js -o deploy\file500.js
Und natürlich meine Dateinamen sind nicht in so einheitlich.
Gibt es Möglichkeit, dies zu automatisieren, ohne Code zu schreiben? :)
Lösung
Ich könnte für eine Make-Datei gehen (ich denke, es ist wahrscheinlich besser verwaltbar langfristig wäre), aber wenn Sie eine schnelle-n-dirty etwas Windows-Batch-Befehl wollen wie die folgenden funktionieren sollte:
for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"
Andere Tipps
Wenn Sie auf Java ausgerichtet sind, können Sie auch Ant verwenden für die Konvertierung. Ich habe einen Blogeintrag über eine Ant Taks für den YUI Compressor . Haftungshinweis: Nie versucht es - sorry
YUI Compressor unterstützt nun Platzhalter, ab Version 2.4.4. Sie können die neueste Version erhalten hier oder von YUI Git Hub .
Ich sollte erwähnen, dass die GNU Make, ich habe die folgende Regel:
%-min.js: %.js
${java} -jar ${compressor} $< -o ${<:.js=-min.js}
Und für Unix oder Cygwin Sie xargs oder so etwas wie verwenden können:
ls -1 * js | awk '{printf ( "java -jar yuicompressor.jar% s -o deploy /% s", $ 1, $ 1)}
Rohr, das zu / bin / sh, wenn Sie mit der Kommandozeile zufrieden bist auszuführen.
Sie müssen so etwas wie ein Skript verwenden, um eine Liste aller JS-Dateien zu bekommen, und dann laufen die YUI Compressor auf alle von ihnen. Auf der Windows-Eingabeaufforderung, soll wie folgt funktionieren:
FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f