2010-12-06 4 views
5

J'ai réussi à créer une application js de petite taille qui utilise jQuery et jQuery UI en utilisant le compilateur de fermeture de google avec des optimisations avancées. Juste pour la clarté: je n'ai pas compilé jQuery lui-même, juste mon application qui utilise jquery. Je voudrais savoir si quelqu'un peut confirmer que cette idée fonctionne aussi pour des applications plus grandes et plus complexes.Application de compilateur de fermeture utilisant jquery

La procédure est la suivante:

0.- Vous avez un fichier HTML qui appelle jquery-1.4.3.min.js, test1.js et test2.js

1.- compilation votre application et exporter un fichier carte de la propriété

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

la carte de propriété est un fichier clé/valeur qui contient le nom de la propriété avant et après la compilation:

aprop:a 
html:b 
each:c 

Copie prop.out à 2.- prop.in et le modifier de sorte que les propriétés jQuery (fonctions) sont remplacés par le même nom (ce qui pourrait être facilement automatisé avec la fonction d'une liste jquery):

aprop:a 
html:html 
each:each 

3.- recompiler en utilisant la prop en entrée comme carte de propriété

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

4.- maintenant dans votre html, inclure min.js et jquery-1.4.3.min.js. L'application devrait être fonctionnelle mais votre code devrait être plus rapide et plus petit.

Ceci minimisera votre code, pas celui de jquery.

Comme je l'ai dit, j'ai testé cela dans une petite application. Si quelqu'un a une application plus grande et plus complexe, il serait bon de savoir que cela fonctionne.

Merci,

HEG

Répondre

3

Avez-vous pensé à utiliser externs. Autant que je sache, c'est la voie à suivre pour éviter que les méthodes jQuery soient raccourcies dans votre code. Externs for jQuery existent en tant que contributions au projet de fermeture.

Pour l'interface utilisateur jQuery, vous pouvez essayer this. C'est quelque chose que j'ai rencontré une fois mais je ne l'ai pas testé moi-même

BTW: Si vous êtes intéressé, il y a cet outil de construction extrêmement pratique pour la fermeture: Plovr. Je l'utilise tout le temps et j'ai fait des externs avec.

+0

J'ai essayé d'utiliser des externes (avec le jquery js normal) sans succès. Je n'étais pas au courant de "Externs for jQuery". Ca promet mais je vais quand même avoir besoin de faire quelque chose avec jQuery UI. Merci pour l'info sur plovr! – Hernan

Questions connexes