Estoy trabajando en un sitio de una página que incorpora aproximadamente una docena de archivos .js y quizás media docena de archivos .css.

La mayoría de los archivos .js son complementos de jQuery. Además de un archivo css base, los archivos CSS son para los complementos jQuery correspondientes.

YUI Compressor parece ser el favorito para comprimir archivos CSS y JS. Sin embargo, solo comprime archivos individuales.

También me gustaría combinar mis archivos y (idealmente) terminar con un archivo .js y uno .css (ambos comprimidos).

¿Existen herramientas preferidas que le permitan automatizar la combinación de los archivos .js y .css en un solo archivo para que luego pueda ejecutarse a través del compresor YUI?

3
DA. 12 sep. 2009 a las 01:24

5 respuestas

La mejor respuesta

Terminé tropezando con esta opción:

http://johannburkard.de/blog/programming/javascript/automate-javascript-compression-with-yui-compressor-and-packer.html

Es un archivo por lotes que combina versiones locales de concatenación, YUI Compressor y Dean Edward's Packer.

Al final, sin embargo, no pude hacer que Packer trabajara localmente. Siguió corrompiendo mi .js.

Entonces, salté esa parte y luego ejecuté mi código comprimido YUI a través del Packer en línea y solo vi un aumento adicional de 1% en la compresión, por lo que simplemente omití la etapa Packer.

Al final, mi solución usó las instrucciones vinculadas anteriores con un archivo por lotes ligeramente modificado:

Escriba .. \ js-in *> jb.js java -jar .. \ yui \ build \ yuicompressor-2.4.2.jar jb.js -o jb-yui.js

Gracias por todas las otras soluciones (válidas) también. Mucha buena información!

1
DA. 14 sep. 2009 a las 17:23

Uso este sitio casi exclusivamente para comprimir mis archivos JS y CSS:
http://www.lotterypost.com/js-compress.aspx
http://www.lotterypost.com/css-compress.aspx

0
Mat B. 20 nov. 2010 a las 22:07

Estaba haciendo esta pregunta solo el otro día. Después de cansarme de buscar en la web, se me ocurrió esta solución hack (archivo por lotes de Windows).

@echo off
set TUNA_ROOT=C:\path\to\webroot
set YUI_COMPRESSOR_PATH=C:\path\to\yuicompressor-2.4.2\build
set TEMP_JS_FILE=%TUNA_ROOT%\scripts\all_scripts_temp.js
set OUTPUT_JS_FILE=%TUNA_ROOT%\scripts\tuna_min.js
if exist "%TEMP_JS_FILE%" del "%TEMP_JS_FILE%"
if exist "%OUTPUT_JS_FILE%" del "%OUTPUT_JS_FILE%"
type "%TUNA_ROOT%\Scripts\MicrosoftAjax.js" >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
type "%TUNA_ROOT%\Scripts\MicrosoftMvcAjax.js" >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
rem ...and so on...
java -jar "%YUI_COMPRESSOR_PATH%\yuicompressor-2.4.2.jar" -v --charset utf-8 -o "%OUTPUT_JS_FILE%" "%TEMP_JS_FILE%"
if exist "%TEMP_JS_FILE%" del "%TEMP_JS_FILE%"

Pero realmente me encantaría si hubiera una forma más automatizada de hacer las cosas.

2
spender 11 sep. 2009 a las 21:32

Es posible que desee consultar las ruedas dentadas (http://www.getsprockets.com/).

2
jonnii 11 sep. 2009 a las 21:32

Si sabes un poco, php, he encontrado que esta es la mejor manera: http://www.thedanglybits.com/2007/06/21/minify-your-external-javascript-and-css-with-php/

3
Alec Gorge 12 sep. 2009 a las 00:47