Il servizio di compilazione della chiusura è deprecato e verrà rimosso. Considera invece di eseguire il compilatore localmente.
Panoramica
Per richiedere il codice compilato o altre informazioni dal servizio Closure Compiler, devi inviare una richiesta POST HTTP all'URL https://closure-compiler.appspot.com/compile
. Il corpo della richiesta deve contenere i parametri elencati in Parametri di richiesta obbligatori e può anche contenere eventuali parametri facoltativi elencati nella sezione Parametri di richiesta facoltativi.
Quando possibile, questa pagina rimanda alla documentazione canonica per le opzioni a riga di comando in Flag e Opzioni. Le opzioni della riga di comando non disponibili nel servizio web non sono documentate qui. Alcuni parametri di richiesta non sono inoltre disponibili nella riga di comando o hanno un nome diverso.
Se il server non riesce a elaborare la richiesta, riceverai un messaggio di errore del server. Questi messaggi sono descritti nella sezione Messaggi di errore.
Parametri di richiesta
Parametri di richiesta obbligatori
js_code
ocode_url
-
Il codice JavaScript da compilare. Devi includere almeno uno di questi parametri e puoi includerli entrambi.
Il parametro
js_code
deve essere una stringa contenente JavaScript, comealert('hello')
.Il parametro
code_url
deve contenere l'URL di un file JavaScript. Puoi includere più parametricode_url
per specificare più file di input. compilation_level
-
Consulta la documentazione per
compilation_level
in Flag e opzioni. output_format
- Il formato per l'output del servizio Closure Compiler. Esistono tre possibili formati di output:
xml
-
Il formato di output
xml
esegue il wrapping delle informazioni richieste in formato XML valido.L'output XML ha il seguente aspetto:
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
La sezione
compiledCode
contiene il codice JavaScript compresso che è stato prodotto dal servizio Closure Compiler. Questa sezione viene visualizzata solo se includi un parametrooutput_info
con un valorecompiled_code
nella richiesta. Analogamente, la sezionestatistics
viene visualizzata solo se includi un parametrooutput_info
con un valorestatistics
.Se includi un parametro
output_info
con un valorewarnings
e il compilatore genera un avviso, l'output includerà un tagwarnings
:<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>
Se includi
output_info
con un valoreerrors
, il servizio di compilazione Closure includerà un tagerrors
se il codice contiene un errore di sintassi o un altro problema che impedisce la compilazione. Il tagerrors
ha il seguente aspetto:<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>
Gli attributi
file
,line
ecol
dei tagerror
ewarning
indicano dove il servizio di chiusura chiusura ha riscontrato l'errore.Se il servizio di compilazione Closure rileva un errore che impedisce l'elaborazione dell'input, l'output ha il seguente aspetto:
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
Il formato di output
json
aggrega le informazioni richieste in una stringa JSON (JavaScript Object Notation). La valutazione di questa stringa come JavaScript restituisce un oggetto JavaScript.L'output JSON ha il seguente aspetto:
{ "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 } }
Il formato JSON è simile al formato XML: ogni tag nell'output XML corrisponde a una proprietà con lo stesso nome nell'oggetto JSON
text
-
Il formato di output
text
restituisce testo non elaborato senza tag o parentesi JSON. Seoutput_info
includecompiled_code
, il testo contiene JavaScript. Seoutput_info
includewarnings
, il testo contiene messaggi di avviso. Seoutput_info
includestatistics
, il testo contiene le statistiche.
Il valore predefinito del parametro
output_format
ètext
. output_info
-
Indica il tipo di output che vuoi nel compilatore. Esistono quattro possibili tipi di output:
compiled_code
- Una versione compressa e ottimizzata del tuo codice JavaScript di input.
warnings
- Messaggi che indicano possibili bug nel tuo codice JavaScript.
errors
- Messaggi che indicano errori di sintassi o altri errori nel codice JavaScript.
statistics
-
Informazioni sul grado di compressione raggiunto dal componente Closure Compiler. Per l'output XML, il servizio Closure Compiler restituisce le statistiche nel seguente formato:
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
Parametri di richiesta facoltativi
js_externs
-
Il valore di questo parametro deve essere codice JavaScript che dichiara i nomi delle funzioni o altri simboli. Utilizza
js_externs
per conservare i simboli definiti all'esterno del codice che stai compilando. Il parametrojs_externs
ha effetto solo se utilizzicompilation_level
diADVANCED_OPTIMIZATIONS
. Per ulteriori informazioni, consulta la sezione Compilation avanzata. externs_url
-
Il valore di questo parametro deve essere l'URL di un file contenente JavaScript che dichiara i nomi delle funzioni o altri simboli. I simboli dichiarati in questo file vengono conservati esattamente come i simboli elencati direttamente nel parametro
js_externs
. Il parametroexterns_url
ha effetto solo se utilizzicompilation_level
diADVANCED_OPTIMIZATIONS
. Per ulteriori informazioni, consulta la sezione Compilation avanzata.Puoi specificare questo parametro più volte se hai più file esterni.
exclude_default_externs
-
Per impostazione predefinita, il servizio Closure Compiler utilizza un file esterno standard che dichiara i simboli comuni definiti esternamente come
document
e tutti i suoi metodi. Se NON vuoi utilizzare questi errori comuni, includi nella richiesta un parametroexclude_default_externs
con valoretrue
.Per ulteriori informazioni sugli elementi esterni, consulta la pagina Compilation avanzata ed esterni.
output_file_name
-
Se presente, il servizio Closure Compiler memorizza nella cache il codice compilato per un'ora e lo rende disponibile tramite un URL speciale. Durante questa ora puoi testare il codice compilato puntando il browser a questo URL. L'URL ha questo formato:
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
Consulta la documentazione per
formatting
in Flag e opzioni. Puoi fornire più parametriformatting
nella stessa richiesta. -
use_closure_library
-
Se assegni al valore
use_closure_library
un valore ditrue
, il compilatore cerca le istruzionigoog.require()
nel codice sorgente e fornisce il codice della libreria di chiusura richiesto da tali istruzioni. Esegue anche ottimizzazioni progettate specificamente per il codice della libreria di chiusura. Consulta la documentazione relativa alla libreria di chiusura per ulteriori informazioni sulla libreria di chiusura. Per ulteriori informazioni sulla funzionegoog.require()
, consulta la pagina Indicazioni per raggiungere la libreria di chiusura.Il valore predefinito del parametro
use_closure_library
èfalse
. warning_level
-
Consulta la documentazione per
warning_level
in Flag e opzioni. -
language
-
Consulta la documentazione per l'opzione
language_in
equivalente nella sezione Flag e opzioni. -
language_out
-
Consulta la documentazione per
language_out
in Flag e opzioni. -
rewrite_polyfills
-
Consulta la documentazione per
rewrite_polyfills
in Flag e opzioni. -
use_types_for_optimization
-
Consulta la documentazione per
use_types_for_optimization
in Flag e opzioni.
Messaggi di errore
Se il server non riesce a elaborare la richiesta, riceverai uno dei messaggi di errore del server elencati nella tabella seguente. Tieni presente che questi messaggi di errore del server sono diversi dagli avvisi e dagli errori di compilazione. Gli avvisi e gli errori del compilatore indicano che il componente chiusura chiusura ha rilevato un problema nel codice JavaScript. I messaggi di errore del server indicano che il compilatore non è in grado di elaborare il codice a causa di un errore nella tua richiesta.
Codice di errore | Messaggio di errore | Significato |
---|---|---|
2 | Modalità di output sconosciuta. | Il valore del parametro output_format è diverso da xml , json o text . |
4 | Livello di compressione sconosciuto. | Il valore del parametro compilation_level è diverso da WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS o ADVANCED_OPTIMIZATIONS . |
8 | I dati POST sono troppo grandi. |
Le dimensioni dei dati inviati al servizio Closure Compiler superano i 200.000 byte. Sia l'interfaccia utente del servizio Compiler sia le chiamate API utilizzano una richiesta POST HTTP per comunicare con il servizio e la quantità totale di dati inviati in questa richiesta non può superare i 200.000 byte. Per le chiamate API, questo limite si applica alla quantità totale di testo in tutti i parametri della richiesta. Per la UI del Closure Compiler, questo limite si applica alla quantità totale di testo sia nel codice sorgente sia nelle opzioni del compilatore come @code_url . Se la richiesta è troppo grande, sposta il codice sorgente in file separati e fai riferimento a questi utilizzando @code_url oppure utilizza l'applicazione Closure Compiler sulla tua macchina locale.
|
9 | File troppo grande. | La quantità totale di codice da tutti i file code_url , tutti i file externs_url , tutto il codice js_code e tutto il codice js_externs superano i 1024000 byte. |
10 | Impossibile recuperare i contenuti dall'URL. | Si è verificato un errore quando il servizio di chiusura chiusura ha tentato di recuperare un file JavaScript indicato nel parametro code_url o un file esterno indicato nel parametro externs_url . Verifica che l'URL sia corretto e che le autorizzazioni del file ne consentano la visualizzazione. |
12 | L'URL non è formattato correttamente. | Il valore del parametro code_url o del parametro externs_url non è un URL corretto. |
13 | Nessuna informazione di output da produrre, ma è stata richiesta la compilazione. | Nessun parametro output_info specificato. |
14 | Valore output_info sconosciuto | Il valore di un parametro output_info è diverso da compiled_code , warnings o statistics . |
16 | Livello di avviso sconosciuto | Il valore del parametro warning_level è diverso da QUIET , DEFAULT o VERBOSE . |
17 | Opzione di formattazione sconosciuta. | Il valore del parametro formatting è diverso da pretty_print . |
18 | Parametro sconosciuto nella richiesta HTTP | La richiesta HTTP contiene un parametro diverso da uno di quelli elencati in questo documento. |
19 | Valore non valido per output_file_name | Il nome del file di output contiene un numero, una lettera, un punto, un trattino basso o un trattino oppure due punti consecutivi (.. ) |
22 | Troppe compilazioni eseguite di recente. Riprova più tardi. | Hai inviato troppe compilation dalla tua macchina. Dopo un'ora, dovresti riuscire a eseguire di nuovo i compilation. |
23 | Eccezione di compilazione (con backtrace) | Si è verificato un arresto anomalo del compilatore. Il testo dell'errore conterrà informazioni per consentire a Google di eseguire il debug del problema. |
24 | Tipo di risorsa di input non supportata | Il tipo di risorsa non è http: e quindi il file di input non verrà recuperato. |