Der Compiler-Dienst für die Schließung wurde verworfen und wird entfernt. Wir empfehlen, den Compiler stattdessen lokal auszuführen.
Übersicht
Wenn Sie kompilierten Code oder andere Informationen vom Closure Compiler-Dienst anfordern möchten, müssen Sie eine HTTP-POST-Anfrage an die URL https://closure-compiler.appspot.com/compile
senden. Der Text der Anfrage muss die in Erforderliche Anfrageparameter aufgeführten Parameter enthalten und kann außerdem alle optionalen Parameter enthalten, die unter Optionale Anfrageparameter aufgeführt sind.
Wenn möglich, wird auf dieser Seite die kanonische Dokumentation für Befehlszeilenoptionen unter Flags und Optionen verwendet. Befehlszeilenoptionen, die im Webdienst nicht verfügbar sind, sind hier nicht dokumentiert. Einige Anfrageparameter sind auch nicht in der Befehlszeile verfügbar oder haben einen anderen Namen.
Wenn der Server Ihre Anfrage nicht verarbeitet, erhalten Sie eine Serverfehlermeldung. Diese Meldungen werden im Abschnitt Fehlermeldungen beschrieben.
Anforderungsparameter
Erforderliche Anfrageparameter
js_code
odercode_url
-
Der zu kompilierende JavaScript-Code. Sie müssen mindestens einen dieser Parameter angeben.
Der Parameter
js_code
muss ein String mit JavaScript sein, z. B.alert('hello')
.Der Parameter
code_url
muss die URL einer JavaScript-Datei enthalten. Sie können mehrerecode_url
-Parameter einschließen, um mehrere Eingabedateien anzugeben. compilation_level
-
Weitere Informationen finden Sie in der Dokumentation zu
compilation_level
unter Flags und Optionen. output_format
- Das Format für die Ausgabe des Closure Compiler-Dienstes. Es gibt drei mögliche Ausgabeformate:
xml
-
Das Ausgabeformat
xml
umschließt die angeforderten Informationen in einem gültigen XML-Format.Die XML-Ausgabe sieht so aus:
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
Der Abschnitt
compiledCode
enthält den komprimierten JavaScript-Code, der vom Closure-Compiler-Dienst generiert wurde. Dieser Abschnitt wird nur angezeigt, wenn Sie einenoutput_info
-Parameter mit dem Wertcompiled_code
in die Anfrage aufnehmen. Ebenso wird der Abschnittstatistics
nur angezeigt, wenn Sie einenoutput_info
-Parameter mit dem Wertstatistics
angeben.Wenn Sie einen
output_info
-Parameter mit dem Wertwarnings
angeben und der Compiler eine Warnung ausgibt, enthält die Ausgabe einwarnings
-Tag:<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>
Wenn Sie ein
output_info
mit dem Werterrors
angeben, schließt der Closure-Compiler-Dienst einerrors
-Tag, wenn der Code einen Syntaxfehler oder ein anderes Problem enthält, das die Kompilierung verhindert. Daserrors
-Tag sieht so aus:<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>
Die Attribute
file
,line
undcol
der Tagserror
undwarning
geben an, wo der Fehler beim Closure Compiler-Dienst aufgetreten ist.Wenn der Closure Compiler-Dienst auf einen Fehler stößt, der die Verarbeitung Ihrer Eingabe verhindert, sieht die Ausgabe so aus:
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
Das Ausgabeformat
json
umschließt die angeforderten Informationen in einem JSON-String (JavaScript Object Notation). Die Auswertung dieses Strings als JavaScript gibt ein JavaScript-Objekt zurück.Die JSON-Ausgabe sieht so aus:
{ "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 } }
Das JSON-Format ähnelt dem XML-Format: Jedes Tag in der XML-Ausgabe entspricht einer Eigenschaft desselben Namens im JSON-Objekt.
text
-
Das Ausgabeformat
text
gibt Rohtext ohne Tags oder JSON-Klammern zurück. Wennoutput_info
den Wertcompiled_code
enthält, enthält der Text JavaScript. Wennoutput_info
warnings
enthält, enthält der Text Warnmeldungen. Wennoutput_info
statistics
enthält, enthält der Text Statistiken.
Der Parameter
output_format
hat den Standardwerttext
. output_info
-
Gibt die gewünschte Ausgabe vom Compiler an. Es gibt vier mögliche Ausgabetypen:
compiled_code
- Eine komprimierte und optimierte Version deines JavaScript-Eingabetexts.
warnings
- Nachrichten, die auf potenzielle Fehler in Ihrem JavaScript hinweisen.
errors
- Meldungen, die auf Syntaxfehler oder andere Fehler in Ihrem JavaScript hinweisen.
statistics
-
Informationen zum Komprimierungsgrad, den der Closure Compiler erreicht. In der XML-Ausgabe gibt der Closure Compiler-Dienst Statistiken im folgenden Format zurück:
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
Optionale Anfrageparameter
js_externs
-
Der Wert dieses Parameters muss JavaScript-Code sein, mit dem Funktionsnamen oder andere Symbole deklariert werden. Verwenden Sie
js_externs
, um Symbole beizubehalten, die außerhalb des zu kompilierenden Codes definiert sind. Der Parameterjs_externs
ist nur wirksam, wenn Sie fürcompilation_level
den WertADVANCED_OPTIMIZATIONS
verwenden. Weitere Informationen finden Sie unter Erweiterte Kompilierung. externs_url
-
Der Wert dieses Parameters muss die URL einer Datei sein, die JavaScript enthält, in der Funktionsnamen oder andere Symbole deklariert sind. Die in dieser Datei deklarierten Symbole werden genauso wie Symbole beibehalten, die direkt im Parameter
js_externs
aufgeführt sind. Der Parameterexterns_url
wirkt sich nur dann aus, wenn Sie fürcompilation_level
den WertADVANCED_OPTIMIZATIONS
verwenden. Weitere Informationen finden Sie unter Erweiterte Kompilierung.Sie können diesen Parameter mehrmals angeben, wenn Sie mehrere externe Dateien haben.
exclude_default_externs
-
Der Closure Compiler-Dienst verwendet standardmäßig eine Standardextern-Datei, die gängige extern definierte Symbole wie
document
und alle zugehörigen Methoden deklariert. Wenn Sie diese allgemeinen extern nicht verwenden möchten, fügen Sie Ihrer Anfrage den Parameterexclude_default_externs
mit dem Werttrue
hinzu.Weitere Informationen zu externen Funktionen finden Sie unter Erweiterte Kompilierung und externe Verbindungen.
output_file_name
-
Falls vorhanden, speichert der Compiler-Dienst den kompilierten Code eine Stunde lang im Cache und stellt ihn über eine spezielle URL zur Verfügung. Während dieser Stunde können Sie den kompilierten Code testen, indem Sie Ihren Browser auf diese URL verweisen. Die URL hat folgendes Format:
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
Weitere Informationen finden Sie in der Dokumentation zu
formatting
unter Flags und Optionen. Sie können mehrereformatting
-Parameter in derselben Anfrage angeben. -
use_closure_library
-
Wenn Sie dem Parameter
use_closure_library
den Werttrue
geben, sucht der Compiler nachgoog.require()
-Anweisungen im Quellcode und stellt den von diesen Anweisungen angeforderten Closure Library-Code bereit. Außerdem werden speziell für den Code der Closure-Bibliothek optimierte Optimierungen durchgeführt. Weitere Informationen zur Schließungsbibliothek finden Sie in der Dokumentation zur Schließen-Bibliothek. Weitere Informationen zur Funktiongoog.require()
finden Sie unter Wegweisende Bibliothek.Der Parameter
use_closure_library
ist standardmäßig auffalse
gesetzt. warning_level
-
Weitere Informationen finden Sie in der Dokumentation zu
warning_level
unter Flags und Optionen. -
language
-
Informationen zur entsprechenden
language_in
-Option finden Sie unter Flags und Optionen. -
language_out
-
Weitere Informationen finden Sie in der Dokumentation zu
language_out
unter Flags und Optionen. -
rewrite_polyfills
-
Weitere Informationen finden Sie in der Dokumentation zu
rewrite_polyfills
unter Flags und Optionen. -
use_types_for_optimization
-
Weitere Informationen finden Sie in der Dokumentation zu
use_types_for_optimization
unter Flags und Optionen.
Fehlermeldungen
Wenn der Server die Anfrage nicht verarbeiten kann, wird eine der in der Tabelle aufgeführten Fehlermeldungen angezeigt. Diese Serverfehlermeldungen unterscheiden sich von Compiler-Fehlern und -Warnungen. Compiler-Fehler und -Warnungen weisen darauf hin, dass Closure Compiler in Ihrem JavaScript-Code ein Problem gefunden hat. Serverfehlermeldungen weisen darauf hin, dass der Compiler Ihren Code aufgrund eines Fehlers in Ihrer Anfrage überhaupt nicht verarbeiten kann.
Fehlercode | Fehlermeldung | Bedeutung |
---|---|---|
2 | Unbekannter Ausgabemodus. | Der Wert des Parameters output_format ist ein anderer Wert als xml , json oder text . |
4 | Unbekannte Komprimierungsstufe. | Der Wert des Parameters compilation_level ist ein anderer Wert als WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS oder ADVANCED_OPTIMIZATIONS . |
8 | POST-Daten zu groß |
Die Größe der Daten, die Sie an den Closure-Compiler-Dienst gesendet haben, überschreitet 200.000 Byte. Sowohl die Benutzeroberfläche des Compiler-Diensts als auch die API-Aufrufe verwenden eine HTTP-POST-Anfrage, um mit dem Dienst zu kommunizieren. Die Gesamtmenge der in dieser Anfrage gesendeten Daten darf 200.000 Byte nicht überschreiten. Bei API-Aufrufen gilt dieses Limit für die Gesamtmenge des Texts in allen Anfrageparametern. Bei der Closure-Compiler-UI gilt dieses Limit für die Gesamtmenge des Texts im Quellcode und in den Compiler-Optionen wie @code_url . Wenn Ihre Anfrage zu groß ist, verschieben Sie entweder den Quellcode in separate Dateien und verweisen Sie mit @code_url darauf oder verwenden Sie die Closure Compiler-Anwendung auf Ihrem lokalen Computer.
|
9 | Datei ist zu groß. | Die Gesamtcodemenge aus allen code_url -Dateien, allen externs_url -Dateien, dem gesamten js_code -Code und dem gesamten js_externs -Code überschreitet 1024.000 Byte. |
10 | Inhalt kann nicht von URL abgerufen werden. | Ein Fehler ist aufgetreten, als der Closure Compiler-Dienst versucht hat, entweder eine im Parameter code_url angegebene JavaScript-Datei oder eine im Parameter externs_url angegebene externe Datei abzurufen. Prüfen Sie, ob die URL korrekt ist und die Berechtigungen der Datei das Aufrufen ermöglichen. |
12 | Die URL ist nicht korrekt gebildet. | Der Wert des Parameters code_url oder externs_url ist keine korrekt formatierte URL. |
13 | Es wurden keine Ausgabeinformationen erstellt, aber eine Kompilierung wurde angefordert. | Es wurde kein output_info -Parameter angegeben. |
14 | Unbekannter Wert für „output_info“ | Der Wert eines output_info -Parameters ist etwas anderes als compiled_code , warnings oder statistics . |
16 | Unbekannte Warnstufe | Der Wert des Parameters warning_level ist ein anderer Wert als QUIET , DEFAULT oder VERBOSE . |
17 | Unbekannte Formatierungsoption. | Der Wert des Parameters formatting ist etwas anderes als pretty_print . |
18 | Unbekannter Parameter in HTTP-Anfrage | Die HTTP-Anfrage enthält einen anderen Parameter als den in diesem Dokument aufgeführten. |
19 | Ungültiger Wert für „output_file_name“ | Der Name der Ausgabedatei enthält ein Zeichen, eine Zahl, einen Buchstaben, einen Punkt, einen Unterstrich oder einen Bindestrich. Außerdem enthält er zwei aufeinanderfolgende Punkte (.. ) |
22 | In letzter Zeit wurden zu viele Compiler erstellt. Versuchen Sie es später noch einmal. | Sie haben zu viele Compiler von Ihrem Computer gesendet. Nach einer Stunde sollten Sie wieder Compilations durchführen können. |
23 | Compiler-Ausnahme (mit Backtrace) | Der Compiler ist abgestürzt. Der Text des Fehlers enthält Informationen, die Google bei der Fehlerbehebung helfen. |
24 | Nicht unterstützter Eingaberessourcentyp | Der Ressourcentyp ist nicht http: und die Eingabedatei wird daher nicht abgerufen. |