Pertanyaan Umum (FAQ)
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
-
Apa itu Closure Compiler? Mengapa saya harus menggunakannya?
-
Closure Compiler adalah alat untuk membuat JavaScript didownload dan
dijalankan lebih cepat. Anda dapat menggunakan Closure Compiler untuk mengurangi ukuran
file JavaScript dan membuatnya lebih efisien.
-
Apa perbedaan Closure Compiler dengan kompresor JavaScript lainnya yang ada?
-
Secara umum, Closure Compiler harus memenuhi atau melampaui kompresi alat minifikasi kode lainnya, dan meningkatkan waktu download untuk aplikasi web Anda. Selain itu, Closure Compiler dapat membantu Anda
menemukan kesalahan sintaksis selama pengembangan (bukan selama pengujian)
dan mengidentifikasi pola kode yang berpotensi mengandung bug.
Dalam mode Simple, Closure Compiler seharusnya dapat melakukan tugasnya lebih baik daripada alat lain karena menggunakan analisis seperti compiler untuk menemukan cara tambahan dalam meminimalkan ukuran kode. Misalnya, Closure Compiler dapat
menyisipkan fungsi yang hanya digunakan dalam beberapa kejadian, menggunakan kembali
nama variabel, dan melakukan pra-penghitungan ekspresi konstanta.
Dalam mode Lanjutan, Closure Compiler juga dapat menggunakan anotasi jenis yang Anda tambahkan untuk menemukan bug yang sulit ditemukan.
-
Dapatkah Closure Compiler mengompilasi JavaScript yang disematkan dalam HTML?
-
Tidak. Closure Compiler hanya berfungsi pada file yang hanya berisi JavaScript.
-
Dapatkah saya menggunakan Closure Compiler bersama dengan minifier JavaScript
lainnya?
-
Ya. Closure Compiler membaca JavaScript yang valid dan menghasilkan
JavaScript yang valid, sehingga Anda dapat menerapkan Closure Compiler ke
file JavaScript baik sebelum maupun setelah menjalankan file melalui
minifier yang berbeda.
Ingatlah bahwa Closure Compiler dan minifier lainnya mungkin memiliki ekspektasi tentang kode yang masuk. Minifier yang menghapus
komentar dapat menghapus lisensi atau informasi anotasi yang diperlukan oleh
alat lain, misalnya.
-
Bagaimana cara men-debug JavaScript yang dihasilkan oleh Closure Compiler?
-
Jika kode yang dikompilasi menampilkan error atau menunjukkan perilaku yang tidak terduga,
Anda dapat menggunakan Peta Sumber untuk men-debug masalah. Peta sumber menyediakan pemetaan
antara kode yang dikompilasi dan kode sumber asli sehingga alat developer
browser dapat menampilkan kode sumber asli Anda, bukan kode yang dikompilasi.
Untuk membuat Closure Compiler menghasilkan peta sumber, teruskan
flag
--create_source_map
di command line. Contoh:
$ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js
Kemudian, jika Anda menggunakan browser yang mendukung Source Map (seperti Chrome
atau Firefox), Anda dapat menyetel titik henti sementara seperti yang Anda lakukan untuk kode yang tidak dikompilasi,
dan alat developer browser akan menampilkan baris kode yang sesuai
dalam sumber aslinya. Untuk mengetahui informasi selengkapnya tentang alat developer Chrome, termasuk
informasi tentang peta sumber, lihat
Proses debug JavaScript.
-
Apakah compiler membuat kompromi antara kecepatan eksekusi aplikasi dan ukuran kode download?
-
Ya. Compiler pengoptimalan apa pun akan membuat kompromi. Beberapa pengoptimalan ukuran akan menimbulkan sedikit overhead kecepatan. Namun, developer
Closure Compiler telah berhati-hati agar tidak menimbulkan
runtime tambahan yang signifikan. Beberapa pengoptimalan
compiler bahkan mengurangi runtime (lihat pertanyaan berikutnya).
-
Apakah compiler mengoptimalkan kecepatan?
-
Dalam sebagian besar kasus, kode yang lebih kecil adalah kode yang lebih cepat, karena waktu download biasanya merupakan faktor kecepatan terpenting dalam aplikasi web. Pengoptimalan yang
mengurangi redundansi juga mempercepat waktu proses kode.
-
Apakah ada batasan pada ukuran file yang dapat dikompilasi?
-
Layanan web kompilasi memiliki ukuran file maksimum, tetapi
aplikasi compiler mandiri tidak.
-
Apakah Closure Compiler tersedia untuk semua platform?
-
Compiler ditulis dalam Java, sehingga dapat berjalan di mana pun Java berjalan.
-
Dapatkah Compiler memproses JavaScript yang valid?
-
Sebagian besar. Beberapa konstruksi JavaScript, termasuk
eval()
dan with()
, dapat membatalkan asumsi yang menjadi dasar
transformasi compiler.
-
Seberapa banyak yang perlu saya ketahui tentang pengembangan web untuk menggunakan
Closure Compiler?
-
Closure Compiler adalah alat untuk pengembangan JavaScript, jadi Anda
harus mengetahui cara memprogram di JavaScript untuk menggunakan
compiler. Namun, siapa pun yang menggunakan JavaScript dapat memanfaatkan penggunaan
Closure Compiler.
-
Bagaimana cara kerja Closure Compiler dengan Closure Library?
-
Closure Compiler menyediakan pemeriksaan dan pengoptimalan khusus untuk
kode yang menggunakan Closure Library. Selain itu, layanan Closure Compiler dapat menyertakan file Closure Library secara otomatis. Menemukan
Cara Anda Menggunakan Closure menjelaskan sintaksis untuk mendeklarasikan
bagian Closure yang Anda butuhkan. Lihat
referensi
API untuk mengetahui informasi tentang penggunaan Closure Library dengan
API. Untuk menggunakan Closure Library dengan aplikasi Closure Compiler, Anda harus mendownload
Closure Library terlebih dahulu. Dukungan untuk Closure Library diaktifkan secara default di aplikasi compiler.
-
Kode saya berhenti berfungsi atau Compiler menghasilkan error saat saya
mengompilasi dengan
ADVANCED_OPTIMIZATIONS
. Mengapa?
-
Menggunakan mode Lanjutan biasanya memerlukan beberapa persiapan dan perubahan
kode. Kompilasi Lanjutan
dan Eksternal menjelaskan cara memastikan kode Anda berfungsi
dengan
ADVANCED_OPTIMIZATIONS
.
-
Mengapa ada feed baris acak dalam skrip yang dikompilasi?
-
Compiler Closure sengaja menambahkan jeda baris setiap 500
karakter atau lebih. Firewall dan proxy terkadang merusak atau
mengabaikan file JavaScript besar dengan baris yang sangat panjang. Menambahkan jeda baris setiap 500 karakter akan mencegah masalah ini. Menghapus jeda baris tidak memengaruhi semantik skrip. Dampak pada ukuran kode kecil, dan Compiler
mengoptimalkan penempatan jeda baris sehingga penalti ukuran kode menjadi lebih kecil saat file di-gzip.
-
Saya memiliki pemberitahuan hak cipta atau teks lisensi open source yang harus muncul di kode sumber saya. Bagaimana cara mencegah
Closure Compiler menghapus teks ini?
-
Closure Compiler mendukung tag JSDoc
@license
. Tambahkan tag
@license
ke komentar JSDoc untuk mempertahankan
komentar dalam output
compiler. Lihat Anotasi
JavaScript untuk Closure Compiler untuk mengetahui informasi selengkapnya.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[null,null,["Terakhir diperbarui pada 2025-07-26 UTC."],[[["\u003cp\u003eThe Closure Compiler is a tool for making JavaScript download and run faster by reducing file size and improving efficiency.\u003c/p\u003e\n"],["\u003cp\u003eIt offers greater compression than standard minifiers and helps identify syntax errors and potential bugs during development.\u003c/p\u003e\n"],["\u003cp\u003eThe Closure Compiler works with any valid JavaScript and can be used alongside other minifiers for enhanced optimization.\u003c/p\u003e\n"],["\u003cp\u003eSource maps enable debugging of compiled code by providing a mapping back to the original source.\u003c/p\u003e\n"],["\u003cp\u003eWhile prioritizing download speed, the compiler also performs optimizations to enhance execution speed without significant runtime overhead.\u003c/p\u003e\n"]]],[],null,["# Frequently Asked Questions\n\n- [What is the Closure Compiler? Why should I use it?](#what)\n- [How is the Closure Compiler different\n from the other JavaScript compressors that are out there?](#how-different)\n- [Can the Closure Compiler compile JavaScript that's embedded in HTML?](#tags)\n- [Can I use the Closure Compiler together with other JavaScript\n minifiers?](#other-minifiers)\n- [How can I debug the JavaScript that the Closure Compiler produces?](#sourcemaps)\n- [Does the compiler make any trade-off between my application's\n execution speed and download code size?](#tradeoffs)\n- [Does the compiler optimize for speed?](#speed)\n- [Are there any restrictions on the size of the files that can be compiled?](#size-restrictions)\n- [Is the Closure Compiler available for all platforms?](#platforms)\n- [Can the Compiler process any legal JavaScript?](#restrictions)\n- [How does the Closure Compiler work with\n the Closure Library?](#how-closure)\n- [My code stops working or the Compiler produces\n errors when I compile\n with `ADVANCED_OPTIMIZATIONS`. Why?](#advanced)\n- [Why are there random line feeds in\n compiled scripts?](#linefeeds)\n- [I have copyright notices or open source license\n text that must appear in my source code. How do I keep the Closure\n Compiler from stripping this text out?](#license)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\nWhat is the Closure Compiler? Why should I use it?\n:\n The Closure Compiler is a tool for making JavaScript download and\n run faster. You can use the Closure Compiler to reduce the size of\n your JavaScript files and to make them more efficient.\n\n\nHow is the Closure Compiler different from the other JavaScript\ncompressors that are out there?\n\n: Generally, the Closure Compiler should meet or exceed the compression\n of other code minification tools, and improve download times for your\n web application. In addition, the Closure Compiler can help you\n find syntax errors during development (rather than during testing)\n and identify potentially buggy code patterns.\n\n In Simple mode, Closure Compiler should be able to do better than\n other tools because it uses compiler-like analysis to find additional\n ways to minimize code size. For example, the Closure Compiler can\n inline functions that are used in only a few occurrences, reuse\n variable names, and pre-compute constant expressions.\n\n In Advanced mode, Closure Compiler can also use your added type\n annotations to find hard-to-spot bugs.\n\n\nCan the Closure Compiler compile JavaScript that's embedded in HTML?\n:\n No. The Closure Compiler works only on files that contain only JavaScript.\n\n\nCan I use the Closure Compiler together with other JavaScript\nminifiers?\n\n: Yes. Closure Compiler reads in any valid JavaScript and generates\n valid JavaScript, so you can apply the Closure Compiler to a\n JavaScript file either before or after you run the file through a\n different minifier.\n\n Remember that Closure Compiler and other minifiers might have\n expectations about the incoming code. A minifier that strips\n comments may remove licenses or annotation information needed by\n another tool, for example.\n\n\nHow can I debug the JavaScript that the Closure Compiler produces?\n:\n If your compiled code is throwing errors or exhibiting unexpected behavior,\n you can use Source Maps to debug the issue. A source map provides a mapping\n between the compiled code and the original source code so that the browser's\n developer tools can show you your original source code instead of the compiled code.\n To make the Closure Compiler produce a source map, pass the\n `--create_source_map` flag on the command line. For example: \n\n ```\n $ java -jar compiler.jar --js example.js --create_source_map ./example-map --js_output_file example-compiled.js\n ```\n\n Then, if you're using a browser that supports Source Maps (such as Chrome\n or Firefox), you can set breakpoints just as you would for uncompiled code,\n and the browser's developer tools will show the corresponding line of code\n in the original source. For more information about Chrome's developer tools, including\n information about source maps, see\n [Debugging JavaScript](https://developers.google.com/chrome-developer-tools/docs/javascript-debugging).\n\n\nDoes the compiler make any trade-off between my application's\nexecution speed and download code size?\n:\n Yes. Any optimizing compiler makes trade-offs. Some size\n optimizations do introduce small speed overheads. However, the\n Closure Compiler's developers have been careful not to introduce\n significant additional runtime. Some of the compiler's\n optimizations even decrease runtime (see next question).\n\n\nDoes the compiler optimize for speed?\n:\n In most cases smaller code is faster code, since download time is usually the most important speed factor in web applications. Optimizations that\n reduce redundancies speed up the run time of code as well.\n\n\nAre there any restrictions on the size of the files that can be compiled?\n:\n The compilation web service has a maximum file size, but the\n standalone compiler application does not.\n\n\nIs the Closure Compiler avalable for all platforms?\n:\n The compiler is written in Java, so it can run anywhere Java runs.\n\n\nCan the Compiler process any legal JavaScript?\n:\n Mostly. Some JavaScript constructs, including `eval()`\n and `with()`, can invalidate assumptions on which the\n compiler's transformations are based.\n\n\nHow much do I need to know about web development to use the\nClosure Compiler?\n:\n The Closure Compiler is a tool for JavaScript development, so you\n do need to know how to program in JavaScript to use the\n compiler. But anyone who uses JavaScript can benefit from using\n the Closure Compiler.\n\n\nHow does the Closure Compiler work with the Closure Library?\n:\n The Closure Compiler provides special checks and optimizations for\n code that uses the Closure Library. In addition, the Closure\n Compiler service can automatically include Closure Library\n files. [Finding\n Your Way around Closure](/closure/library/docs/introduction#deps) describes the syntax for declaring the\n parts of Closure that you need. See\n the [API\n reference](/closure/compiler/docs/api-ref#closure) for information on using the Closure Library with the\n API. To use the Closure Library with the Closure Compiler\n application you must\n first [download\n the Closure Library](https://github.com/google/closure-library). Support for the Closure Library is\n enabled in the compiler application by default.\n\n\nMy code stops working or the Compiler produces errors when I\ncompile with `ADVANCED_OPTIMIZATIONS`. Why?\n:\n Using Advanced mode usually requires some preparation and code\n changes. [Advanced Compilation\n and Externs](/closure/compiler/docs/api-tutorial3) explains how to make sure your code works\n with `ADVANCED_OPTIMIZATIONS`.\n\n\nWhy are there random line feeds in compiled scripts?\n:\n The Closure Compiler intentionally adds line breaks every 500\n characters or so. Firewalls and proxies sometimes corrupt or\n ignore large JavaScript files with very long lines. Adding line\n breaks every 500 characters prevents this problem. Removing the\n line breaks has no effect on a script's semantics. The impact on code size is small, and the Compiler\n optimizes line break placement so that the code size penalty is even smaller when files are gzipped.\n\n\nI have copyright notices or open source\nlicense text that must appear in my source code. How do I keep the\nClosure Compiler from stripping this text out?\n:\n Closure Compiler supports the JSDoc `@license` tag. Add the\n `@license` tag to any JSDoc comment to preserve the\n comment in the compiler\n output. See [Annotating\n JavaScript for the Closure Compiler](/closure/compiler/docs/js-for-compiler#tag-license) for more information."]]