Questions fréquentes


Qu'est-ce que le compilateur de fermeture ? Pourquoi l'utiliser ?
Closure Compiler est un outil permettant de télécharger JavaScript et de l'exécuter plus rapidement. Vous pouvez utiliser Closure Compiler pour réduire la taille de vos fichiers JavaScript et les rendre plus efficaces.
En quoi Closure Compiler est-il différent des autres compresseurs JavaScript ?

En règle générale, Closure Compiler doit atteindre ou dépasser la compression des autres outils de minimisation du code et améliorer les temps de téléchargement de votre application Web. En outre, Closure Compiler peut vous aider à détecter les erreurs de syntaxe lors du développement (plutôt que pendant les tests) et à identifier des modèles de code potentiellement problématiques.

En mode simple, Closure Compiler devrait être en mesure de faire mieux que les autres outils, car il utilise une analyse de type compilateur pour trouver d'autres moyens de réduire la taille du code. Par exemple, Closure Compiler permet d'intégrer des fonctions qui ne sont utilisées que dans quelques occurrences, de réutiliser des noms de variables et de précalculer des expressions constantes.

En mode avancé, Closure Compiler peut également utiliser les annotations de votre type pour détecter les bugs difficiles à repérer.

Closure Compiler permet-il de compiler du code JavaScript intégré au code HTML ?
Non. Closure Compiler ne fonctionne que sur les fichiers qui ne contiennent que du code JavaScript.
Puis-je utiliser Closure Compiler avec d'autres outils de réduction de code JavaScript ?

Oui. Closure Compiler lit tout code JavaScript valide et génère du code JavaScript valide. Vous pouvez donc appliquer Closure Compiler à un fichier JavaScript avant ou après l'avoir exécuté via un autre réducteur.

N'oubliez pas que Closure Compiler et les autres outils de réduction de taille peuvent avoir des attentes par rapport au code entrant. Un réducteur qui supprime les commentaires peut supprimer des licences ou des informations d'annotation requises par un autre outil, par exemple.

Comment puis-je déboguer le code JavaScript produit par Closure Compiler ?
Si votre code compilé génère des erreurs ou présente un comportement inattendu, vous pouvez utiliser Source Maps pour déboguer le problème. Un mappage source permet de mapper le code source et le code source d'origine, de sorte que les outils pour les développeurs du navigateur puissent vous montrer votre code source d'origine plutôt que le code compilé. Pour que Closure Compiler génère une carte source, transmettez l'option --create_source_map dans la ligne de commande. Par exemple :
$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
Si vous utilisez un navigateur compatible avec les cartes sources (comme Chrome ou Firefox), vous pouvez définir des points d'arrêt comme pour du code non compilé. Les outils de développement du navigateur afficheront alors la ligne de code correspondante dans la source d'origine. Pour en savoir plus sur les outils de développement de Chrome, y compris les informations sur les mappages sources, consultez la section Déboguer JavaScript.
Le compilateur effectue-t-il un compromis entre la vitesse d'exécution de mon application et la taille du code de téléchargement ?
Oui. Tout compilateur optimise les compromis. Certaines optimisations de taille introduisent des coûts minimes. Toutefois, les développeurs de Closure Compiler ont fait attention à ne pas introduire d'environnement d'exécution supplémentaire important. Certaines optimisations du compilateur réduisent même la durée d'exécution (voir la question suivante).
Le compilateur optimise-t-il la vitesse ?
Dans la plupart des cas, un code plus petit est plus rapide, car le temps de téléchargement est généralement le facteur de vitesse le plus important dans les applications Web. Les optimisations qui réduisent les redondances accélèrent également l'exécution du code.
Existe-t-il des restrictions sur la taille des fichiers pouvant être compilés ?
Le service Web de compilation a une taille de fichier maximale, ce qui n'est pas le cas de l'application de compilateur autonome.
Closure Compiler est-il disponible sur toutes les plates-formes ?
Le compilateur étant écrit en Java, il peut s'exécuter partout où Java s'exécute.
Le compilateur peut-il traiter du code JavaScript juridique ?
Essentiellement. Certaines constructions JavaScript, y compris eval() et with(), peuvent invalider les hypothèses sur lesquelles les transformations du compilateur sont basées.
Que faut-il savoir sur le développement Web pour utiliser Closure Compiler ?
Closure Compiler est un outil de développement JavaScript. Vous devez donc savoir comment programmer en JavaScript pour utiliser le compilateur. Toutefois, toute personne utilisant JavaScript peut bénéficier de Closure Compiler.
Comment le compilateur Closure fonctionne-t-il avec la bibliothèque Closure ?
Closure Compiler fournit des vérifications et des optimisations spéciales pour le code qui utilise la bibliothèque Closure. En outre, le service Compiler Closure peut automatiquement inclure des fichiers de la bibliothèque Closure. La section Trouver votre chemin dans le cadre de la fermeture décrit la syntaxe à utiliser pour déclarer les éléments de la fermeture dont vous avez besoin. Consultez la documentation de référence de l'API pour en savoir plus sur l'utilisation de la bibliothèque Closure avec l'API. Pour utiliser Closure Library avec l'application Closure Compiler, vous devez d'abord télécharger la bibliothèque Closure. La compatibilité avec la bibliothèque Closure est activée par défaut dans l'application de compilation.
Mon code cesse de fonctionner ou le compilateur génère des erreurs lorsque je compile avec ADVANCED_OPTIMIZATIONS. Pourquoi ?
L'utilisation du mode avancé nécessite généralement quelques modifications au niveau de la préparation et du code. La section Compilation avancée et explorations explique comment s'assurer que votre code fonctionne avec ADVANCED_OPTIMIZATIONS.
Pourquoi y a-t-il des sauts de ligne aléatoires dans les scripts compilés ?
Closure Compiler ajoute intentionnellement des sauts de ligne tous les 500 caractères environ. Les pare-feu et les proxys corrompent ou ignorent parfois les fichiers JavaScript volumineux avec des lignes très longues. L'ajout de sauts de ligne tous les 500 caractères permet d'éviter ce problème. La suppression des sauts de ligne n'a aucun effet sur la sémantique d'un script. L'impact sur la taille du code est faible et le compilateur optimise l'emplacement des sauts de ligne afin que la pénalité sur la taille du code soit encore plus faible lorsque les fichiers sont compressés au format gzip.
Je dispose d'avis de droits d'auteur ou d'un texte de licence Open Source qui doivent apparaître dans mon code source. Comment empêcher le compilateur de fermeture de supprimer ce texte ?
Closure Compiler est compatible avec la balise @license JSDoc. Ajoutez le tag @license à tout commentaire JSDoc afin de conserver le commentaire dans le résultat du compilateur. Pour en savoir plus, consultez la page Annoter du code JavaScript pour le compilateur de fermeture.