¿Cómo automatizar la compresión de archivos JavaScript con YUI Compressor?
-
03-07-2019 - |
Pregunta
YUI Compressor no acepta parámetros comodín, por lo que no puedo ejecutarlo así:
C:>java -jar yuicompressor.jar *.js
Pero tengo más de 500 archivos y preferiría no tener que crear un archivo por lotes como este:
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
Y, por supuesto, mis nombres de archivo no son tan uniformes.
¿Hay alguna manera de automatizar esto sin escribir ningún código? :)
Solución
Podría optar por un archivo MAKE (creo que probablemente sería más fácil de mantener a largo plazo), pero si desea un comando por lotes de Windows rápido y sucio, algo como lo siguiente debería funcionar:
for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"
Otros consejos
Si está orientado a Java, también puede usar Ant para la conversión. He encontrado una entrada de blog sobre un Ant Taks para el compresor YUI . Descargo de responsabilidad: nunca lo intenté, lo siento
YUI ahora admite comodines, a partir de la versión 2.4.4. Puede obtener la última versión aquí o de YUI Git Hub .
Debo mencionar que usando GNU Make, tengo la siguiente regla:
%-min.js: %.js
${java} -jar ${compressor} $< -o ${<:.js=-min.js}
Y para unix o cygwin puedes usar xargs o algo así como:
ls -1 * .js | awk '{printf (" java -jar yuicompressor.jar% s -o deploy /% s ", $ 1, $ 1)}'
Canalice eso a / bin / sh cuando esté satisfecho con la línea de comando para ejecutarlo.
Necesitará usar algún tipo de script para obtener una lista de todos los archivos .js, y luego ejecutar el Compresor YUI en todos ellos. En el símbolo del sistema de Windows, algo como esto debería funcionar:
FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f