2010-12-06 20 views
5

He logrado crear una aplicación js de pequeño tamaño que utiliza jQuery y jQuery UI utilizando el compilador de cierre de Google con optimizaciones avanzadas. Solo por claridad: no he compilado jQuery, solo mi aplicación que usa jquery. Me gustaría saber si alguien puede confirmar que esta idea también funciona para aplicaciones más grandes y complejas.Aplicación de compilador de cierre utilizando jquery

El procedimiento es el siguiente:

0.- Tiene un archivo HTML que llama jquery-1.4.3.min.js, test1.js y test2.js

1.- compilación su aplicación y exportar un archivo de mapa de la propiedad

java -jar closure-compiler.jar \ 
     --compilation_level ADVANCED_OPTIMIZATIONS \ 
     --js test1.js --js test2.js \ 
     --property_map_output_file prop.out > min.js 

el mapa de la propiedad es un archivo de clave/valor que contiene el nombre de la propiedad antes y después de la compilación:

aprop:a 
html:b 
each:c 

2.- Copia prop.out a prop.in y editarlo de modo que las propiedades de jQuery (funciones) se sustituyen por el mismo nombre (esto podría ser fácilmente automatizado con la función de una lista de jQuery):

aprop:a 
html:html 
each:each 

3.- Recompile utilizando prop en el mapa como propiedad de entrada

java -jar closure-compiler.jar \ 
     --compilation_level ADVANCED_OPTIMIZATIONS \ 
     --js test1.js --js test2.js \ 
     --property_map_input_file prop.in > min.js 

4.- Ahora en su html, incluir min.js y jquery-1.4.3.min.js. La aplicación debe ser funcional, pero su código debe ser más rápido y más pequeño.

Esto miniaturizará su código, no el de jquery.

Como dije, he probado esto en una aplicación pequeña. Si alguien tiene una aplicación más grande y compleja, sería bueno saber que esto funciona.

Gracias,

HEG

Respuesta

3

Ha considerado el uso externs. Por lo que sé, ese es el camino a seguir para evitar que los métodos de jQuery se acorten en su código. Externs for jQuery existen como contribuciones al proyecto de cierre.

Para jQuery UI es posible que desee intentar this. Es algo que encontré una vez pero no lo he probado yo mismo

BTW: Si te interesa, existe esta herramienta de construcción extremadamente útil para el cierre: Plovr. Lo uso todo el tiempo y lo hice trabajar con él.

+0

He intentado utilizar externos (con el jquery js normal) sin éxito. No tenía conocimiento de "Externs for jQuery". Parece prometedor, pero igual tendré que hacer algo con jQuery UI. ¡Gracias por la información sobre plovr! – Hernan

Cuestiones relacionadas