Referensi Closure Compiler Service API

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

Parameter code_url harus berisi URL file JavaScript. Anda dapat menyertakan beberapa parameter code_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 parameter output_info dengan nilai compiled_code dalam permintaan. Demikian pula, bagian statistics hanya muncul jika Anda menyertakan parameter output_info dengan nilai statistics.

Jika Anda menyertakan parameter output_info dengan nilai warnings dan compiler menghasilkan peringatan, output-nya akan menyertakan 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>
      

Jika Anda menyertakan output_info dengan nilai errors, layanan Closure Compiler akan menyertakan tag errors jika kode Anda berisi error sintaksis atau masalah lain yang mencegah kompilasi. Tag errors 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, dan col dari tag error dan warning 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. Jika output_info menyertakan compiled_code, teks berisi JavaScript. Jika output_info menyertakan warnings, teks akan berisi pesan peringatan. Jika output_info menyertakan statistics, teks akan berisi statistik.

Parameter output_format ditetapkan secara default ke nilai text.

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. Parameter js_externs hanya berpengaruh jika Anda menggunakan compilation_level dari ADVANCED_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. Parameter externs_url hanya berpengaruh jika Anda menggunakan compilation_level dari ADVANCED_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 parameter exclude_default_externs dengan nilai true 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 parameter formatting dalam permintaan yang sama.

use_closure_library

Jika Anda memberi parameter use_closure_library nilai true, compiler akan mencari pernyataan goog.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 fungsi goog.require().

Parameter use_closure_library secara default ditetapkan ke false.

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 ErrorPesan ErrorArti
2Mode output tidak diketahui.Nilai parameter output_format adalah sesuatu selain xml, json, atau text.
4Level kompresi tidak diketahui.Nilai parameter compilation_level adalah sesuatu selain WHITESPACE_ONLY, SIMPLE_OPTIMIZATIONS, atau ADVANCED_OPTIMIZATIONS.
8Data 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.
9File 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.
10Tidak 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.
12URL tidak menggunakan format yang benar.Nilai dari parameter code_url atau parameter externs_url bukan URL yang dibentuk dengan baik.
13Tidak ada informasi output yang akan dihasilkan, tetapi kompilasi telah diminta. Tidak ada parameter output_info yang ditentukan.
14Nilai output_info tidak dikenalNilai parameter output_info adalah sesuatu selain compiled_code, warnings, atau statistics.
16Tingkat peringatan tidak diketahuiNilai parameter warning_level bukan QUIET, DEFAULT, atau VERBOSE.
17Opsi pemformatan tidak dikenal.Nilai parameter formatting adalah sesuatu selain pretty_print.
18Parameter tidak dikenal dalam permintaan HTTPPermintaan HTTP berisi parameter selain salah satu yang tercantum dalam dokumen ini.
19Nilai ilegal untuk output_file_name Nama file output berisi karakter angka, huruf, titik, garis bawah, atau tanda hubung, atau berisi dua titik berturut-turut (..)
22Terlalu 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.
23Pengecualian compiler (dengan backtrace) Compiler error. Teks error akan berisi informasi untuk membantu Google men-debug masalah tersebut.
24Jenis resource input tidak didukung Jenis resource bukan http: sehingga file input tidak akan diambil.