Referenz zur Closure Compiler Service API

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 oder code_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 mehrere code_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 einen output_info-Parameter mit dem Wert compiled_code in die Anfrage aufnehmen. Ebenso wird der Abschnitt statistics nur angezeigt, wenn Sie einen output_info-Parameter mit dem Wert statistics angeben.

Wenn Sie einen output_info-Parameter mit dem Wert warnings angeben und der Compiler eine Warnung ausgibt, enthält die Ausgabe ein warnings-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 Wert errors angeben, schließt der Closure-Compiler-Dienst ein errors-Tag, wenn der Code einen Syntaxfehler oder ein anderes Problem enthält, das die Kompilierung verhindert. Das errors-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 und col der Tags error und warning 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. Wenn output_info den Wert compiled_code enthält, enthält der Text JavaScript. Wenn output_info warnings enthält, enthält der Text Warnmeldungen. Wenn output_info statistics enthält, enthält der Text Statistiken.

Der Parameter output_format hat den Standardwert text.

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 Parameter js_externs ist nur wirksam, wenn Sie für compilation_level den Wert ADVANCED_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 Parameter externs_url wirkt sich nur dann aus, wenn Sie für compilation_level den Wert ADVANCED_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 Parameter exclude_default_externs mit dem Wert true 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 mehrere formatting-Parameter in derselben Anfrage angeben.

use_closure_library

Wenn Sie dem Parameter use_closure_library den Wert true geben, sucht der Compiler nach goog.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 Funktion goog.require() finden Sie unter Wegweisende Bibliothek.

Der Parameter use_closure_library ist standardmäßig auf false 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.

FehlercodeFehlermeldungBedeutung
2Unbekannter Ausgabemodus.Der Wert des Parameters output_format ist ein anderer Wert als xml, json oder text.
4Unbekannte Komprimierungsstufe.Der Wert des Parameters compilation_level ist ein anderer Wert als WHITESPACE_ONLY, SIMPLE_OPTIMIZATIONS oder ADVANCED_OPTIMIZATIONS.
8POST-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.
9Datei 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.
10Inhalt 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.
12Die URL ist nicht korrekt gebildet.Der Wert des Parameters code_url oder externs_url ist keine korrekt formatierte URL.
13Es wurden keine Ausgabeinformationen erstellt, aber eine Kompilierung wurde angefordert. Es wurde kein output_info-Parameter angegeben.
14Unbekannter Wert für „output_info“Der Wert eines output_info-Parameters ist etwas anderes als compiled_code, warnings oder statistics.
16Unbekannte WarnstufeDer Wert des Parameters warning_level ist ein anderer Wert als QUIET, DEFAULT oder VERBOSE.
17Unbekannte Formatierungsoption.Der Wert des Parameters formatting ist etwas anderes als pretty_print.
18Unbekannter Parameter in HTTP-AnfrageDie HTTP-Anfrage enthält einen anderen Parameter als den in diesem Dokument aufgeführten.
19Ungü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 (..)
22In 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.
23Compiler-Ausnahme (mit Backtrace) Der Compiler ist abgestürzt. Der Text des Fehlers enthält Informationen, die Google bei der Fehlerbehebung helfen.
24Nicht unterstützter Eingaberessourcentyp Der Ressourcentyp ist nicht http: und die Eingabedatei wird daher nicht abgerufen.