Layanan compiler Closure tidak digunakan lagi, dan akan dihapus. Sebaiknya jalankan compiler secara lokal.
Ringkasan
Untuk meminta kode yang dikompilasi atau informasi lainnya dari layanan Closure Compiler,
Anda harus mengirimkan permintaan HTTP POST ke URL
https://closure-compiler.appspot.com/compile
. Isi permintaan harus
berisi parameter yang tercantum dalam Parameter Permintaan
yang Diperlukan, dan juga dapat berisi salah satu parameter opsional
yang tercantum di Parameter Permintaan Opsional.
Jika memungkinkan, halaman ini merujuk ke dokumentasi kanonis untuk opsi command line di Flags and Options. Opsi command line yang tidak tersedia di LOCAL tidak didokumentasikan di sini. Beberapa parameter permintaan juga tidak tersedia di command line atau memiliki nama yang berbeda.
Jika server gagal memproses permintaan, Anda akan menerima pesan error server. Pesan ini dijelaskan di bagian Pesan Error.
Parameter Permintaan
Parameter Permintaan yang Diperlukan
js_code
ataucode_url
-
JavaScript yang akan dikompilasi. Anda harus menyertakan setidaknya salah satu parameter ini, dan Anda dapat menyertakan keduanya.
Parameter
js_code
harus berupa string yang berisi JavaScript, sepertialert('hello')
.Parameter
code_url
harus berisi URL file JavaScript. Anda dapat menyertakan beberapa parametercode_url
untuk menentukan beberapa file input. compilation_level
-
Lihat dokumentasi
compilation_level
di Flags and Options. output_format
- Format untuk output layanan Closure Compiler. Ada tiga kemungkinan format output:
xml
-
Format output
xml
menggabungkan informasi yang diminta dalam XML yang valid.Output XML-nya akan terlihat seperti ini:
<compilationResult> <compiledCode>var a="hello";alert(a);</compiledCode> <statistics> <originalSize>98</originalSize> <compressedSize>35</compressedSize> <compileTime>0</compileTime> </statistics> </compilationResult>
Bagian
compiledCode
berisi JavaScript terkompresi yang dihasilkan oleh layanan Closure Compiler. Bagian ini hanya muncul jika Anda menyertakan parameteroutput_info
dengan nilaicompiled_code
dalam permintaan. Demikian pula, bagianstatistics
hanya muncul jika Anda menyertakan parameteroutput_info
dengan nilaistatistics
.Jika Anda menyertakan parameter
output_info
dengan nilaiwarnings
dan compiler menghasilkan peringatan, output-nya akan menyertakan 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>
Jika Anda menyertakan
output_info
dengan nilaierrors
, layanan Closure Compiler akan menyertakan tagerrors
jika kode Anda berisi error sintaksis atau masalah lain yang mencegah kompilasi. Tagerrors
terlihat seperti ini:<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>
Atribut
file
,line
, dancol
dari tagerror
danwarning
menunjukkan tempat layanan Closure Compiler mengalami error.Jika layanan Closure Compiler mengalami error yang mencegah pemrosesan input Anda, output-nya akan terlihat seperti ini:
<compilationResult> <serverErrors> <error code="1">Over quota</error> </serverErrors> </compilationResult>
json
-
Format output
json
menggabungkan informasi yang diminta dalam string JavaScript Object Notation (JSON). Evaluasi string ini sebagai JavaScript akan menampilkan Objek JavaScript.Output JSON akan terlihat seperti ini:
{ "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 } }
Format JSON mirip dengan format XML: setiap tag dalam output XML sesuai dengan properti dari nama yang sama dalam objek JSON
text
-
Format output
text
menampilkan teks mentah tanpa tag atau tanda kurung JSON. Jikaoutput_info
menyertakancompiled_code
, teks berisi JavaScript. Jikaoutput_info
menyertakanwarnings
, teks akan berisi pesan peringatan. Jikaoutput_info
menyertakanstatistics
, teks akan berisi statistik.
Parameter
output_format
ditetapkan secara default ke nilaitext
. output_info
-
Menunjukkan jenis output yang diinginkan dari compiler. Ada empat jenis output yang memungkinkan:
compiled_code
- Versi yang dikompresi dan dioptimalkan dari JavaScript input Anda.
warnings
- Pesan yang menunjukkan kemungkinan bug dalam JavaScript Anda.
errors
- Pesan yang menunjukkan error sintaksis atau error lainnya di JavaScript Anda.
statistics
-
Informasi tentang tingkat kompresi yang dicapai oleh Closure Compiler. Untuk output xml, layanan Closure Compiler menampilkan statistik dalam format berikut:
<compilationResult> ... <statistics> <firstStatisticName>24</firstStatisticName> <secondStatisticName>15</secondStatisticName> </statistics> </compilationResult>
Parameter Permintaan Opsional
js_externs
-
Nilai parameter ini harus berupa kode JavaScript yang mendeklarasikan nama fungsi atau simbol lainnya. Gunakan
js_externs
untuk mempertahankan simbol yang ditentukan di luar kode yang Anda kompilasi. Parameterjs_externs
hanya berpengaruh jika Anda menggunakancompilation_level
dariADVANCED_OPTIMIZATIONS
. Lihat Kompilasi Lanjutan untuk informasi lebih lanjut. externs_url
-
Nilai parameter ini harus berupa URL file yang berisi JavaScript yang mendeklarasikan nama fungsi atau simbol lainnya. Simbol yang dideklarasikan dalam file ini dipertahankan dengan cara yang sama persis seperti simbol yang tercantum langsung dalam parameter
js_externs
. Parameterexterns_url
hanya berpengaruh jika Anda menggunakancompilation_level
dariADVANCED_OPTIMIZATIONS
. Lihat Kompilasi Lanjutan untuk informasi lebih lanjut.Anda dapat menentukan parameter ini beberapa kali jika memiliki beberapa file ekstensi.
exclude_default_externs
-
Secara default, layanan Compiler Closure menggunakan file ekstensi standar yang mendeklarasikan simbol umum yang ditentukan secara eksternal seperti
document
dan semua metodenya. Jika Anda TIDAK ingin menggunakan ekstensi umum ini, sertakan parameterexclude_default_externs
dengan nilaitrue
dalam permintaan Anda.Lihat Kompilasi Lanjutan dan Eksternal untuk informasi lebih lanjut tentang ekstensi.
output_file_name
-
Jika ada, layanan Closure Compiler men-cache kode yang dikompilasi selama satu jam dan menyediakannya melalui URL khusus. Selama waktu ini, Anda dapat menguji kode yang dikompilasi dengan mengarahkan browser ke URL ini. URL memiliki format ini:
https://closure-compiler.appspot.com/code/bf067f356d510e1c7b81347eb84f65d2/[value of output_file_name]
formatting
-
Lihat dokumentasi
formatting
di Flags and Options. Anda dapat memberikan beberapa parameterformatting
dalam permintaan yang sama. -
use_closure_library
-
Jika Anda memberi parameter
use_closure_library
nilaitrue
, compiler akan mencari pernyataangoog.require()
dalam kode sumber dan memberikan kode Library Closure yang diminta oleh pernyataan tersebut. Library ini juga menjalankan pengoptimalan yang dirancang khusus untuk kode Library Closure. Lihat dokumentasi Library Closure untuk mengetahui informasi selengkapnya tentang Closure Library. Lihat Memahami Library Closure untuk informasi selengkapnya tentang fungsigoog.require()
.Parameter
use_closure_library
secara default ditetapkan kefalse
. warning_level
-
Lihat dokumentasi
warning_level
di Flags and Options. -
language
-
Lihat dokumentasi untuk opsi
language_in
yang setara di Flags and Options. -
language_out
-
Lihat dokumentasi
language_out
di Flags and Options. -
rewrite_polyfills
-
Lihat dokumentasi
rewrite_polyfills
di Flags and Options. -
use_types_for_optimization
-
Lihat dokumentasi
use_types_for_optimization
di Flags and Options.
Pesan Error
Jika server gagal memproses permintaan, Anda akan menerima salah satu pesan error server yang tercantum dalam tabel di bawah ini. Perlu diperhatikan bahwa pesan error server ini berbeda dengan peringatan dan error compiler. Error dan peringatan compiler menunjukkan bahwa Closure Compiler menemukan masalah pada kode JavaScript Anda. Pesan error server menunjukkan bahwa compiler tidak dapat memproses kode Anda sama sekali karena error dalam permintaan Anda.
Kode Error | Pesan Error | Arti |
---|---|---|
2 | Mode output tidak diketahui. | Nilai parameter output_format adalah sesuatu selain xml , json , atau text . |
4 | Level kompresi tidak diketahui. | Nilai parameter compilation_level adalah sesuatu selain WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS , atau ADVANCED_OPTIMIZATIONS . |
8 | Data POST terlalu besar. |
Ukuran data yang Anda kirim ke layanan Closure Compiler
melebihi 200.000 byte. UI Compiler Service dan panggilan API Anda menggunakan permintaan HTTP POST untuk berkomunikasi dengan layanan, dan jumlah total data yang dikirim dalam permintaan ini tidak boleh melebihi 200.000 byte. Untuk panggilan API, batas ini berlaku untuk jumlah total teks di semua parameter permintaan. Untuk UI Closure Compiler, batas ini
berlaku untuk jumlah total teks dalam kode sumber dan opsi
compiler seperti @code_url . Jika permintaan Anda
terlalu besar, pindahkan kode sumber ke dalam file terpisah dan
mereferensikannya menggunakan
@code_url , atau gunakan aplikasi Closure Compiler
di mesin lokal Anda.
|
9 | File terlalu besar. | Jumlah total
kode dari semua file code_url ,
semua file externs_url , semua kode js_code , dan
semua kode js_externs melebihi 1024000 byte. |
10 | Tidak dapat mengambil konten dari URL. | Terjadi error saat layanan Closure Compiler mencoba mengambil file JavaScript yang ditunjukkan dalam parameter code_url atau file ekstensi yang ditunjukkan dalam parameter externs_url . Periksa apakah
URL sudah benar dan izin file membuatnya dapat
ditampilkan. |
12 | URL tidak menggunakan format yang benar. | Nilai dari
parameter code_url atau parameter externs_url
bukan URL yang dibentuk dengan baik. |
13 | Tidak ada informasi output yang akan dihasilkan, tetapi kompilasi telah diminta. | Tidak ada parameter output_info yang ditentukan. |
14 | Nilai output_info tidak dikenal | Nilai parameter output_info adalah sesuatu selain compiled_code , warnings , atau statistics . |
16 | Tingkat peringatan tidak diketahui | Nilai
parameter warning_level bukan
QUIET , DEFAULT ,
atau VERBOSE . |
17 | Opsi pemformatan tidak dikenal. | Nilai parameter formatting adalah sesuatu selain pretty_print . |
18 | Parameter tidak dikenal dalam permintaan HTTP | Permintaan HTTP berisi parameter selain salah satu yang tercantum dalam dokumen ini. |
19 | Nilai ilegal untuk output_file_name | Nama file output berisi karakter angka, huruf, titik, garis bawah, atau tanda hubung, atau berisi dua titik berturut-turut (.. ) |
22 | Terlalu banyak kompilasi yang dilakukan baru-baru ini. Coba lagi nanti. | Anda telah mengirimkan terlalu banyak kompilasi dari mesin Anda. Setelah satu jam, Anda akan dapat melakukan kompilasi lagi. |
23 | Pengecualian compiler (dengan backtrace) | Compiler error. Teks error akan berisi informasi untuk membantu Google men-debug masalah tersebut. |
24 | Jenis resource input tidak didukung | Jenis resource bukan http: sehingga file input tidak akan diambil. |