Le service de compilation de fermeture est obsolète et sera supprimé. Envisagez plutôt d'exécuter le compilateur en local.
Présentation
Pour demander du code compilé ou d'autres informations au service Closure Compiler, vous devez envoyer une requête HTTP POST à l'URL https://closure-compiler.appspot.com/compile
. Le corps de la requête doit contenir les paramètres répertoriés dans la section Paramètres de requête requis. Il peut également contenir l'un des paramètres facultatifs répertoriés dans Paramètres de requête facultatifs.
Dans la mesure du possible, cette page renvoie à la documentation canonique sur les options de ligne de commande sur la page Options et options. Les options de ligne de commande non disponibles dans le service Web ne sont pas documentées ici. Certains paramètres de requête ne sont pas non plus disponibles sur la ligne de commande ou ont un nom différent.
Si le serveur ne parvient pas à traiter votre requête, vous recevrez un message d'erreur. Ces messages sont décrits dans la section Messages d'erreur.
Paramètres des requêtes
Paramètres de requête requis
js_code
oucode_url
-
Code JavaScript à compiler. Vous devez inclure au moins l'un de ces paramètres, et vous pouvez inclure les deux.
Le paramètre
js_code
doit être une chaîne contenant du code JavaScript (par exemple,alert('hello')
).Le paramètre
code_url
doit contenir l'URL d'un fichier JavaScript. Vous pouvez inclure plusieurs paramètrescode_url
pour spécifier plusieurs fichiers d'entrée. compilation_level
-
Consultez la documentation de
compilation_level
sur la page Options et options. output_format
- Format de sortie du service Compiler Closure. Il existe trois formats de sortie possibles :
xml
-
Le format de sortie
xml
encapsule les informations demandées dans un fichier XML valide.La sortie XML se présente comme suit:
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
La section
compiledCode
contient le code JavaScript compressé généré par le service Closure Compiler. Cette section ne s'affiche que si vous incluez dans la requête un paramètreoutput_info
dont la valeur estcompiled_code
. De même, la sectionstatistics
ne s'affiche que si vous incluez un paramètreoutput_info
avec une valeurstatistics
.Si vous incluez un paramètre
output_info
avec la valeurwarnings
et que le compilateur génère un avertissement, la sortie inclura une balisewarnings
:<compilationResult> ... <warnings> <warning type="JSC_NO_SIDE_EFFECT" file="default.js" lineno="12" charno="3" line="delete 1;">warning 1</warning> <warning type="JSC_UNUSED_VAR" file="default.js" lineno="13" charno="13" line="delete 1;">warning 2 </warning> </warnings> ... </compilationResult>
Si vous incluez une valeur
output_info
avec la valeurerrors
, le service Closure Compiler inclut une baliseerrors
si votre code contient une erreur de syntaxe ou un autre problème empêchant la compilation. La baliseerrors
se présente comme suit:<compilationResult> ... <errors> <error type="JSC_NO_SIDE_EFFECT" file="default.js" lineno="12" charno="3" line="var x=-'hello';">error 1 </error> <error type="JSC_UNUSED_VAR" file="default.js" lineno="13" charno="13" line="var x=-'hello'">error 2 </error> </errors> ... </compilationResult>
Les attributs
file
,line
etcol
des baliseserror
etwarning
indiquent où le service Closure Compiler a rencontré l'erreur.Si le service Closure Compiler rencontre une erreur qui empêche le traitement de votre entrée, la sortie se présente comme suit:
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
Le format de sortie
json
encapsule les informations demandées dans une chaîne JSON (JavaScript Object Notation). L'évaluation de cette chaîne en tant que JavaScript renvoie un objet JavaScript.La sortie JSON se présente comme suit:
{ "compiledCode":/* raw code here */, {"errors": [ {"charno":4321, "error":"ERROR: You failed.", "lineno":1234, "file":"default.js", "type":"ERROR_TYPE", "line":"var x=-'hello';"}], "warnings": [ {"charno":4321, "lineno":1234, "file":"default.js", "type":"ERROR_TYPE", "warning":"Warning: You did something wrong!", "line":"delete 1;"}] "serverErrors":[ {"code":123,"error":"Over quota"} ], "statistics":{ "originalSize":10, "compressedSize":3000 "compileTime":10 } }
Le format JSON est semblable au format XML: chaque balise de la sortie XML correspond à une propriété du même nom dans l'objet JSON.
text
-
Le format de sortie
text
renvoie du texte brut sans tags ni crochets JSON. Sioutput_info
inclutcompiled_code
, le texte contient JavaScript. Sioutput_info
inclutwarnings
, le texte contient des messages d'avertissement. Sioutput_info
inclutstatistics
, le texte contient des statistiques.
La valeur par défaut du paramètre
output_format
esttext
. output_info
-
Indique le type de sortie que vous souhaitez obtenir du compilateur. Il existe quatre types de résultats:
compiled_code
- Version compressée et optimisée de votre code JavaScript d'entrée.
warnings
- Messages indiquant d'éventuels bugs dans votre code JavaScript.
errors
- Messages qui indiquent des erreurs de syntaxe ou d'autres erreurs dans votre code JavaScript.
statistics
-
Informations sur le niveau de compression atteint par Closure Compiler. Pour les résultats XML, le service Closure Compiler renvoie des statistiques au format suivant:
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
Paramètres de requête facultatifs
js_externs
-
La valeur de ce paramètre doit être un code JavaScript qui déclare des noms de fonction ou d'autres symboles. Utilisez
js_externs
pour conserver les symboles définis en dehors du code que vous compilez. Le paramètrejs_externs
n'a d'effet que si vous utilisez uncompilation_level
deADVANCED_OPTIMIZATIONS
. Pour en savoir plus, consultez la section Compilation avancée. externs_url
-
La valeur de ce paramètre doit être l'URL d'un fichier contenant JavaScript qui déclare des noms de fonction ou d'autres symboles. Les symboles déclarés dans ce fichier sont conservés exactement de la même manière que ceux indiqués directement dans le paramètre
js_externs
. Le paramètreexterns_url
n'a d'effet que si vous utilisez une propriétécompilation_level
de typeADVANCED_OPTIMIZATIONS
. Pour en savoir plus, consultez la section Compilation avancée.Vous pouvez spécifier ce paramètre plusieurs fois si vous avez plusieurs fichiers d'extension.
exclude_default_externs
-
Par défaut, le service Closure Compiler utilise un fichier d'externs standard qui déclare les symboles courants définis en externe tels que
document
et toutes ses méthodes. Si vous NE souhaitez PAS utiliser ces externs courants, incluez dans votre requête un paramètreexclude_default_externs
avec la valeurtrue
.Pour plus d'informations sur les externs, consultez la section Compilation avancée et extternes.
output_file_name
-
S'il est présent, le service Closure Compiler met en cache le code compilé pendant une heure et le met à disposition via une URL spéciale. Pendant cette heure, vous pouvez tester le code compilé en dirigeant votre navigateur vers cette URL. L'URL se présente au format suivant :
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
Consultez la documentation de
formatting
sur la page Options et options. Vous pouvez fournir plusieurs paramètresformatting
dans la même requête. -
use_closure_library
-
Si vous attribuez la valeur
true
au paramètreuse_closure_library
, le compilateur recherche les instructionsgoog.require()
dans le code source et fournit le code Closure Library demandé par ces instructions. Il effectue également des optimisations conçues spécifiquement pour le code de la bibliothèque Closure. Pour en savoir plus sur la bibliothèque Closure, consultez la documentation sur la bibliothèque de fermetures. Pour en savoir plus sur la fonctiongoog.require()
, consultez Se repérer dans la bibliothèque Closure.La valeur par défaut du paramètre
use_closure_library
estfalse
. warning_level
-
Consultez la documentation de
warning_level
sur la page Options et options. -
language
-
Consultez la documentation sur les options
language_in
équivalentes sur la page Options et options. -
language_out
-
Consultez la documentation de
language_out
sur la page Options et options. -
rewrite_polyfills
-
Consultez la documentation de
rewrite_polyfills
sur la page Options et options. -
use_types_for_optimization
-
Consultez la documentation de
use_types_for_optimization
sur la page Options et options.
Messages d'erreur
Si le serveur ne parvient pas à traiter votre requête, vous recevrez l'un des messages d'erreur de serveur répertoriés dans le tableau ci-dessous. Notez que ces messages d'erreur de serveur sont différents des erreurs et des avertissements du compilateur. Les erreurs et avertissements du compilateur indiquent que Closure Compiler a détecté un problème dans votre code JavaScript. Les messages d'erreur du serveur indiquent que le compilateur ne peut pas du tout traiter votre code en raison d'une erreur dans votre requête.
Code d'erreur | Message d'erreur | Signification |
---|---|---|
2 | Mode de sortie inconnu. | La valeur du paramètre output_format est différente de xml , json ou text . |
4 | Niveau de compression inconnu. | La valeur du paramètre compilation_level n'est pas WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS ni ADVANCED_OPTIMIZATIONS . |
8 | Données POST trop volumineuses. |
La taille des données que vous avez envoyées au service Closure Compiler dépasse 200 000 octets. L'interface utilisateur du service Compiler et vos appels d'API utilisent une requête HTTP POST pour communiquer avec le service, et la quantité totale de données envoyées dans cette requête ne peut pas dépasser 200 000 octets. Pour les appels d'API, cette limite s'applique à la quantité totale de texte dans tous les paramètres de la requête. Pour l'interface utilisateur de Closure Compiler, cette limite s'applique à la quantité totale de texte dans le code source et dans les options de compilation telles que @code_url . Si votre requête est trop volumineuse, placez le code source dans des fichiers distincts et référencez-les à l'aide de @code_url , ou utilisez l'application Closure Compiler sur votre ordinateur local.
|
9 | Fichier trop volumineux. | La quantité totale de code de tous les fichiers code_url , externs_url , js_code et js_externs dépasse 1 024 000 octets. |
10 | Impossible de récupérer le contenu à partir de l'URL. | Une erreur s'est produite lorsque le service Closure Compiler a tenté de récupérer un fichier JavaScript indiqué dans le paramètre code_url ou un fichier externe indiqué dans le paramètre externs_url . Vérifiez que l'URL est correcte et que les autorisations du fichier permettent son affichage. |
12 | Le format de l'URL est incorrect. | La valeur du paramètre code_url ou externs_url n'est pas une URL valide. |
13 | Aucune information de sortie à produire, mais la compilation a été demandée. | Aucun paramètre output_info n'a été spécifié. |
14 | Valeur "output_info" inconnue | La valeur d'un paramètre output_info n'est pas compiled_code , warnings ni statistics . |
16 | Niveau d'avertissement inconnu | La valeur du paramètre warning_level est différente de QUIET , DEFAULT ou VERBOSE . |
17 | Option de mise en forme inconnue. | La valeur du paramètre formatting est différente de pretty_print . |
18 | Paramètre inconnu dans la requête HTTP | La requête HTTP contient un paramètre autre que l'un des répertoriés dans ce document. |
19 | Valeur non autorisée pour "output_file_name" | Le nom du fichier de sortie contient un caractère un chiffre, une lettre, un point, un trait de soulignement ou un tiret, ou il contient deux points consécutifs (.. ). |
22 | Trop de compilations ont été effectuées récemment. Réessayez plus tard. | Vous avez envoyé trop de compilations à partir de votre machine. Au bout d'une heure, vous devriez pouvoir effectuer des compilations. |
23 | Exception du compilateur (avec trace trace) | Le compilateur a planté. Le texte de l'erreur contient des informations pour aider Google à résoudre le problème. |
24 | Type de ressource d'entrée non compatible | Le type de ressource n'étant pas http:, le fichier d'entrée ne sera donc pas récupéré. |