2008-10-22 16 views
13

YUI Compressor no acepta parámetros comodín, por lo que no puede funcionar así:Cómo automatizar la compresión de archivos JavaScript con YUI Compressor?

C:>java -jar yuicompressor.jar *.js 

pero tengo más de 500 archivos y prefieren no tener que crear un archivo por lotes como esto:

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 son no de manera uniforme.

¿Hay forma de automatizar esto sin escribir ningún código? :)

+1

YUICompressor admite comodines a partir de la versión 2.4.4. Vea a continuación los enlaces de descarga. – hazerd

Respuesta

12

podría ir para un makefile (creo que probablemente sería más fácil de mantener a largo plazo), pero si quieres un comando por lotes de Windows rápida-n-sucia algo como lo siguiente debería funcionar:

for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a" 
+0

Funciona bien si no hay espacios en el nombre del archivo. ¡Gracias! –

+0

Deberías poder lanzar comillas allí. Lo editaré. –

+0

¡Sí, eso fue todo! Lo último que tengo que superar es poder ejecutar este archivo por lotes desde la carpeta A, tener todos los archivos .js en la carpeta B y poner los archivos de salida en la carpeta C. –

1

Tendrá que utilizar algún tipo de script para obtener una lista de todos los archivos .js, y luego ejecuta el compresor YUI en todos ellos. En las ventanas de símbolo del sistema, algo como esto debería funcionar:

FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f 
2

Y para UNIX o cygwin puede utilizar xargs o algo por el estilo:

ls -1 * .js | awk '{printf ("java -jar yuicompressor.jar% s -o deploy /% s", $ 1, $ 1)}'

Transfiera eso a/bin/sh cuando esté satisfecho con la línea de comando para ejecutar eso.

+0

y para una versión recursiva utilice find en lugar de ls –

4

debería mencionar que el uso de GNU Make, tengo la siguiente regla:

%-min.js: %.js 
    ${java} -jar ${compressor} $< -o ${<:.js=-min.js} 
+0

¿Por qué está usando '$ {<:. js = -min.js}' en lugar de solo '$ @'? –

+0

Porque hay MUCHO sobre GNU Make No lo sé. – foxxtrot

5

Si se orientan hacia Java, también se puede utilizar Ant para la conversión. He encontrado un blog entry sobre un Ant Taks for the YUI Compressor. Descargo de responsabilidad: Nunca lo intenté - lo siento

+0

Otra tarea de hormiga se puede encontrar en https: // bitbucket.org/m6_russell_francis/yui-compressor-ant-task Lo uso en varios proyectos para automatizar la compresión de archivos js/css. Como autor, puedo ser un poco parcial. – Russ

5

El compresor YUI ahora admite comodines, a partir de la versión 2.4.4. Puede obtener la última versión here o de YUI Git Hub.