Closure コンパイラ サービスのサポートが終了し、今後削除されます。 代わりにコンパイラをローカルで実行することを検討してください。
概要
Closure Compiler サービスからコンパイル済みコードやその他の情報をリクエストするには、HTTP POST リクエストを URL https://closure-compiler.appspot.com/compile
に送信する必要があります。リクエストの本文には、必要なリクエスト パラメータにリストされているパラメータを含める必要があります。また、オプションのリクエスト パラメータにリストされているオプション パラメータを含めることもできます。
このページに説明がある場合は、フラグとオプションで、コマンドライン オプションの正規ドキュメントに従います。ウェブサービスで使用できないコマンドライン オプションに関する説明はありません。リクエスト パラメータの中には、コマンドラインで使用できないものや、別の名前を使用しているものもあります。
サーバーがリクエストを処理できない場合は、サーバーエラー メッセージが表示されます。これらのメッセージについては、エラー メッセージのセクションをご覧ください。
リクエスト パラメータ
必要なリクエスト パラメータ
js_code
またはcode_url
-
コンパイルする JavaScript。これらのパラメータを少なくとも 1 つ含める必要があります。
js_code
パラメータは、alert('hello')
などの JavaScript を含む文字列にする必要があります。code_url
パラメータには、JavaScript ファイルの URL を含める必要があります。複数のcode_url
パラメータを使用して、複数の入力ファイルを指定できます。 compilation_level
-
compilation_level
については、フラグとオプションをご覧ください。 output_format
- Closure Compiler サービスの出力の形式。考えられる出力形式は次のとおりです。
xml
-
xml
出力形式は、リクエストされた情報を有効な XML でラップします。XML 出力は次のようになります。
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
compiledCode
セクションには、Closure Compiler サービスが生成した圧縮 JavaScript が含まれます。このセクションは、リクエスト内にcompiled_code
の値を持つoutput_info
パラメータが含まれている場合にのみ表示されます。同様に、statistics
セクションは、値がstatistics
のoutput_info
パラメータが含まれている場合にのみ表示されます。値を
warnings
にoutput_info
パラメータを指定し、コンパイラが警告を生成する場合、出力には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>
値を
errors
にoutput_info
を指定し、コードに構文エラーやコンパイルを妨げるその他の問題が含まれている場合、Closure Compiler Service にはerrors
タグが含まれます。errors
タグは次のようになります。<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>
error
タグとwarning
タグのfile
、line
、col
属性は、Closure Compiler サービスでエラーが発生した場所を示します。Closure Compiler サービスで入力の処理を妨げるエラーが発生した場合、出力は次のようになります。
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
json
出力形式は、リクエストされた情報を JavaScript Object Notation(JSON)文字列でラップします。この文字列を JavaScript として評価すると、JavaScript オブジェクトが返されます。JSON 出力は次のようになります。
{ "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 } }
JSON 形式は XML 形式と似ており、XML 出力内のすべてのタグは JSON オブジェクト内の同じ名前のプロパティに対応します。
text
-
text
出力形式は、タグまたは JSON 角かっこのない未加工のテキストを返します。output_info
にcompiled_code
が含まれている場合、テキストには JavaScript が含まれています。output_info
にwarnings
が含まれている場合、テキストに警告メッセージが含まれます。output_info
にstatistics
が含まれている場合、テキストには統計情報が含まれます。
output_format
パラメータのデフォルト値はtext
です。 output_info
-
コンパイラからの出力の種類を指定します。出力には次の 4 種類があります。
compiled_code
- 入力 JavaScript の圧縮され最適化されたバージョン。
warnings
- JavaScript のバグの可能性を示すメッセージ。
errors
- JavaScript の構文エラーやその他のエラーを示すメッセージ。
statistics
-
Closure Compiler で実現される圧縮の程度に関する情報。xml 出力の場合、Closure Compiler サービスは統計情報を次の形式で返します。
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
リクエスト パラメータ(省略可)
js_externs
-
このパラメータの値は、関数名やその他の記号を宣言する JavaScript コードにする必要があります。
js_externs
を使用して、コンパイルするコードの外部で定義されているシンボルを保持します。js_externs
パラメータは、ADVANCED_OPTIMIZATIONS
のcompilation_level
を使用している場合にのみ適用されます。詳細については、高度なコンパイルをご覧ください。 externs_url
-
このパラメータの値は、関数名やその他の記号を宣言する JavaScript を含むファイルの URL にする必要があります。このファイル内で宣言されているシンボルは、
js_externs
パラメータに直接リストされているシンボルとまったく同じように保持されています。externs_url
パラメータは、ADVANCED_OPTIMIZATIONS
のcompilation_level
を使用している場合のみ効果があります。詳細については、高度なコンパイルをご覧ください。複数の外部ファイルがある場合は、このパラメータを複数回指定できます。
exclude_default_externs
-
デフォルトでは、Closure Compiler サービスは
document
などのすべての外部定義シンボルと、そのすべてのメソッドを宣言する標準の externs ファイルを使用します。これらの一般的な外部イベントを使用しない場合は、リクエストにtrue
の値を指定したexclude_default_externs
パラメータを含めます。extern の詳細については、高度なコンパイルとエクスターンをご覧ください。
output_file_name
-
存在する場合、Closure Compiler サービスはコンパイルされたコードを 1 時間キャッシュに保存し、特別な URL を介して利用可能にします。この時間帯に、ブラウザでこの URL を指定することで、コンパイル済みのコードをテストできます。URL の形式は次のとおりです。
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
formatting
のドキュメントは、フラグとオプションをご覧ください。同じリクエストに複数のformatting
パラメータを指定できます。 -
use_closure_library
-
use_closure_library
パラメータの値をtrue
に設定すると、コンパイラはソースコードでgoog.require()
ステートメントを検索し、そのようなステートメントによって要求される Closure ライブラリ コードを提供します。また、Closure Library のコード向けに設計された最適化も行います。Closure Library の詳細については、Closure Library のドキュメントをご覧ください。goog.require()
関数の詳細については、Closure ライブラリの使い方をご覧ください。use_closure_library
パラメータのデフォルトはfalse
です。 warning_level
-
warning_level
については、フラグとオプションをご覧ください。 -
language
-
同等の
language_in
オプションについては、フラグとオプションのドキュメントをご覧ください。 -
language_out
-
language_out
については、フラグとオプションをご覧ください。 -
rewrite_polyfills
-
rewrite_polyfills
については、フラグとオプションをご覧ください。 -
use_types_for_optimization
-
use_types_for_optimization
については、フラグとオプションをご覧ください。
エラー メッセージ
サーバーがリクエストを処理できない場合は、以下の表に示すサーバーエラー メッセージが表示されます。これらのサーバーエラー メッセージは、コンパイラ エラーや警告とは異なることに注意してください。コンパイラ エラーと警告は、Closure Compiler が JavaScript コードで問題を検出したことを示します。サーバー エラー メッセージは、リクエストにエラーがあるためにコンパイラがコードをまったく処理できないことを示します。
エラーコード | エラー メッセージ | 意味 |
---|---|---|
2 | 不明な出力モードです。 | output_format パラメータの値が、xml 、json 、text 以外である。 |
4 | 不明な圧縮レベルです。 | compilation_level パラメータの値が、WHITESPACE_ONLY 、SIMPLE_OPTIMIZATIONS 、ADVANCED_OPTIMIZATIONS 以外である。 |
8 | POST データが大きすぎます。 |
Closure Compiler サービスに送信されたデータのサイズが 200,000 バイトを超えています。Compiler Service UI と API 呼び出しはどちらも HTTP POST リクエストを使用してサービスと通信します。このリクエストで送信されるデータの合計量は 200,000 バイト以下にする必要があります。API 呼び出しの場合、この上限はすべてのリクエスト パラメータの合計テキスト量に適用されます。Closure Compiler UI では、この上限はソースコードと @code_url などのコンパイラ オプション内のテキストの総量に適用されます。リクエストが大きすぎる場合は、ソースコードを別々のファイルに移動して、@code_url を使用して参照するか、ローカルマシンで Closure Compiler アプリケーションを使用してください。 |
9 | ファイルが大きすぎます。 | すべての code_url ファイル、すべての externs_url ファイル、すべての js_code コード、すべての js_externs コードの合計コードが 1024,000 バイトを超えています。 |
10 | URL からコンテンツを取得できません。 | Closure Compiler サービスが、code_url パラメータで指定された JavaScript ファイル、または externs_url パラメータで指定された外部ファイルを取得しようとしたときにエラーが発生しました。URL が正しいことと、ファイルの権限で表示できることを確認します。 |
12 | URL の形式が正しくありません。 | code_url パラメータまたは externs_url パラメータの値は、正しい形式の URL ではありません。 |
13 | 生成する出力情報がありませんが、コンパイルがリクエストされました。 | output_info パラメータが指定されていません。 |
14 | output_info の値が不明です | output_info パラメータの値が、compiled_code 、warnings 、または statistics 以外である。 |
16 | 警告レベルは不明です | warning_level パラメータの値が、QUIET 、DEFAULT 、VERBOSE 以外である。 |
17 | 不明なフォーマット オプションです。 | formatting パラメータの値が pretty_print 以外である。 |
18 | HTTP リクエストに不明なパラメータがある | HTTP リクエストに、こちらのドキュメントに記載されている以外のパラメータが含まれています。 |
19 | output_file_name の値が無効です | 出力ファイルの名前に、文字、数字、ドット、アンダースコア、ダッシュが含まれているか、連続した 2 つのドット(.. )が含まれている。 |
22 | 最近実行したコンパイルが多すぎます。しばらくしてからもう一度お試しください。 | マシンから送信したコンパイルが多すぎます。1 時間後、もう一度コンパイルを実行できます。 |
23 | コンパイラ例外(バックトレースあり) | コンパイラがクラッシュしました。エラーのテキストには、Google が問題をデバッグする際に役立つ情報が含まれます。 |
24 | サポートされていない入力リソースタイプ | リソースタイプが http: ではないため、入力ファイルは取得されません。 |