Riferimento per l'API Closure Compiler Service

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 o code_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, come alert('hello').

Il parametro code_url deve contenere l'URL di un file JavaScript. Puoi includere più parametri code_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 parametro output_info con un valore compiled_code nella richiesta. Analogamente, la sezione statistics viene visualizzata solo se includi un parametro output_info con un valore statistics.

Se includi un parametro output_info con un valore warnings e il compilatore genera un avviso, l'output includerà un tag warnings:

        <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 valore errors, il servizio di compilazione Closure includerà un tag errors se il codice contiene un errore di sintassi o un altro problema che impedisce la compilazione. Il tag errors 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 e col dei tag error e warning 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. Se output_info include compiled_code, il testo contiene JavaScript. Se output_info include warnings, il testo contiene messaggi di avviso. Se output_info include statistics, 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 parametro js_externs ha effetto solo se utilizzi compilation_level di ADVANCED_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 parametro externs_url ha effetto solo se utilizzi compilation_level di ADVANCED_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 parametro exclude_default_externs con valore true.

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ù parametri formatting nella stessa richiesta.

use_closure_library

Se assegni al valore use_closure_library un valore di true, il compilatore cerca le istruzioni goog.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 funzione goog.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 erroreMessaggio di erroreSignificato
2Modalità di output sconosciuta.Il valore del parametro output_format è diverso da xml, json o text.
4Livello di compressione sconosciuto.Il valore del parametro compilation_level è diverso da WHITESPACE_ONLY, SIMPLE_OPTIMIZATIONS o ADVANCED_OPTIMIZATIONS.
8I 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.
9File 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.
10Impossibile 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.
12L'URL non è formattato correttamente.Il valore del parametro code_url o del parametro externs_url non è un URL corretto.
13Nessuna informazione di output da produrre, ma è stata richiesta la compilazione. Nessun parametro output_info specificato.
14Valore output_info sconosciutoIl valore di un parametro output_info è diverso da compiled_code, warnings o statistics.
16Livello di avviso sconosciutoIl valore del parametro warning_level è diverso da QUIET, DEFAULT o VERBOSE.
17Opzione di formattazione sconosciuta.Il valore del parametro formatting è diverso da pretty_print.
18Parametro sconosciuto nella richiesta HTTPLa richiesta HTTP contiene un parametro diverso da uno di quelli elencati in questo documento.
19Valore 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 (..)
22Troppe 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.
23Eccezione 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.
24Tipo di risorsa di input non supportata Il tipo di risorsa non è http: e quindi il file di input non verrà recuperato.