Utilisation du compilateur Google Closure

Dupliquer possible:
jQuery compilé avec Google Closure Comstackr

J’utilise jQuery et j’ai tout mon code JS dans le fichier application.js. Lorsque je comstack “application.js” avec le compilateur Google Closure (à l’aide des options avancées), je reçois un fichier js sans erreur ni avertissement. Cependant, je ne parviens pas à utiliser le fichier dans ma page. Une erreur de chargement de page s’affiche, indiquant “TypeError: résultat de l’expression ‘$ (” div.tile “). D” [undefined] n’est pas une fonction. ”

Ma question est la suivante: puis-je comstackr un fichier js utilisant jQuery?

Oui, si vous souhaitez inclure le fichier jQuery dans votre autre fichier.

Oui, si vous utilisez le mode simple, à la place.

Sinon, non.

Vous pouvez également utiliser le mode avancé si vous spécifiez que votre fichier js utilise jQuery en spécifiant un fichier “externe” pour jQuery. Ainsi, le compilateur de fermeture ne changera pas vos appels de fonction jQuery dans votre javascript.

java -jar comstackr.jar --compilation_level ADVANCED_OPTIMIZATIONS --js_output_file application.js --externs jquery-1.4.4.externs.js 

Vous pouvez trouver certains des fichiers externes jQuery ici: http://code.google.com/p/closure-comstackr/source/browse/trunk/consortingb/externs/

Vous devez dire au compilateur Closure ce qu’il ne faut pas optimiser.

Je le fais avec un compilateur en ligne ( http://closure-comstackr.appspot.com/home ) en ajoutant un paramètre externe externs_url. Lorsque vous tapez votre code sur le compilateur en ligne, il ajoute automatiquement un en-tête similaire à celui-ci, mais sans paramètre externs_url par défaut.

 // ==ClosureComstackr== // @output_file_name default.js // @compilation_level ADVANCED_OPTIMIZATIONS // @externs_url https://closure-comstackr.googlecode.com/git/consortingb/externs/jquery-1.9.js // ==/ClosureComstackr== 

Vous pouvez voir quels fichiers externes sont actuellement disponibles à l’ adresse https://code.google.com/p/closure-comstackr/source/browse/consortingb/externs/ . Ils ont presque toutes les versions de jQuery.

Pour ce faire, avec la version Java téléchargeable du compilateur, vous pouvez simplement passer le paramètre –externs_url sur la cli ou télécharger le fichier extern dont vous avez besoin et transmettre ce nom de fichier avec le paramètre –externs comme dans la réponse de Palmerlee.

Si vous êtes intéressé par les raisons pour lesquelles vous ne pouvez pas simplement activer les optimisations avancées, consultez http://code.google.com/closure/comstackr/docs/api-tutorial3.html.