Tentang alat ini
Minifikasi JavaScript mengurangi ukuran kode sumber dengan menghapus karakter yang tidak perlu dan (dengan minifier yang tepat) mengganti nama variabel lokal menjadi nama yang lebih pendek. Kategori pertama — penghapusan spasi dan komentar — sangatlah mudah dan bebas risiko. Yang kedua — penggantian nama variabel — memerlukan pemahaman aturan cakupan dan merupakan hal terbaik yang dapat dilakukan oleh minifier produksi seperti Terser dan esbuild.
Alat ini berfokus pada minifikasi yang aman: menghapus komentar, menciutkan spasi, menghapus titik koma yang berlebihan, dan memperpendek pola yang jelas. Penggantian nama variabel bersifat konservatif — hanya variabel lokal dalam cakupan yang jelas yang disentuh, dan nama yang direferensikan secara eksternal dibiarkan saja. Hasilnya secara fungsional identik dengan sumbernya.
Untuk minifikasi tingkat produksi, alat khusus (Terser, esbuild, swc) memahami model cakupan ECMAScript secara lengkap dan menghasilkan keluaran yang jauh lebih kecil. Alat ini untuk minifikasi sisi browser dengan cepat ketika pengaturan build lengkap tidak tersedia.
Mengapa Memperkecil JavaScript
Paket JavaScript biasanya merupakan sumber daya tunggal terbesar di laman web modern. Minifikasi secara rutin menghasilkan pengurangan ukuran sebesar 30–60% dibandingkan sumber yang tidak diminifikasi. Jika digabungkan dengan gzip atau Brotli, pengurangannya akan sedikit berkurang, namun kombinasi tersebut tetap menghemat byte yang dapat diukur — terutama bagi pengguna dengan koneksi lambat.
JavaScript yang lebih cepat juga berarti Waktu Interaktif yang lebih cepat. Skrip yang lebih kecil diunduh lebih cepat, diurai lebih cepat, dan dieksekusi lebih cepat. Untuk situs di mana TTI memengaruhi rasio pentalan dan peringkat SEO, minifikasi adalah salah satu solusi termurah yang tersedia.
Cara menggunakan
Rekatkan JavaScript, dapatkan versi yang lebih kecil.
- Tambahkan masukan JavaScript: Tempelkan sumber ke area input atau letakkan file .js. Minifier menerima JavaScript modern (ES2015+) termasuk fungsi panah, literal templat, kelas, dan modul.
- Pilih opsi: Defaultnya menghapus komentar dan menciutkan spasi. Penggantian nama variabel lokal bersifat konservatif; aktifkan penggantian nama yang lebih agresif jika Anda memerlukan kompresi maksimum.
- Perkecil: Minifier mem-parsing sumber, menghilangkan spasi dan komentar, dan mengeluarkan keluaran ringkas. Kesalahan sintaksis pada sumber menghasilkan pesan kesalahan yang jelas.
- Gunakan hasilnya: Ganti sumber skrip Anda dalam produksi. Untuk pengoptimalan penuh, pasangkan dengan bundler yang menangani guncangan pohon dan penghapusan kode mati.
Detail Teknis
Minifier memberi token pada JavaScript menggunakan parser yang mematuhi sintaksis ECMAScript. Komentar (satu baris dan banyak baris) dihapus kecuali untuk komentar lisensi yang ditandai dengan /*! awalan. Spasi diciutkan kecuali jika diperlukan secara sintaksis (antara pengidentifikasi, setelah kata kunci).
Penggantian nama variabel konservatif memperpendek variabel lokal dalam cakupan yang jelas. Nama global, ekspor, dan impor tidak diganti namanya — hal ini akan merusak referensi eksternal. Untuk penggantian nama yang mendalam, gunakan Terser atau esbuild dengan analisis sadar modul yang tepat.
Kasus tepi: penyisipan titik koma otomatis (ASI) berarti minifier harus mempertahankan baris baru dalam beberapa konteks untuk menghindari perubahan perilaku program. Literal templat, literal regex, dan JSX (jika input menyertakannya) dipertahankan karena kontennya mungkin tidak aman untuk dikompres.
Pertanyaan yang sering diajukan
- Apakah minifikasi mengubah cara kerja kode saya?
- Tidak. Minifikasi menghilangkan spasi dan komentar, yang tidak memengaruhi eksekusi. Pemendekan variabel (mangling) mengganti nama variabel lokal tetapi mempertahankan perilaku. Variabel global dan nama yang diekspor tetap utuh.
- Haruskah saya mengecilkan dalam pengembangan atau produksi?
- Hanya gunakan kode yang diperkecil dalam produksi. Selama pengembangan, simpan kode asli yang dapat dibaca. Sebagian besar alat pembangunan (Webpack, Vite, esbuild) menangani minifikasi secara otomatis sebagai bagian dari proses pembangunan produksi.
- Apa perbedaan antara minifikasi dan kebingungan?
- Minifikasi mengurangi ukuran sekaligus menjaga kode tetap dapat dibaca secara fungsional jika diformat. Kebingungan sengaja membuat kode sulit dipahami (pengkodean string, perataan aliran kontrol). Alat ini berfokus pada pengurangan ukuran, bukan kebingungan.
- Berapa banyak pengurangan ukuran yang harus saya harapkan?
- Biasanya 30-60% sebelum gzip. Kode yang dikomentari dengan baik dengan nama variabel yang panjang mengalami pengurangan terbesar. Dikombinasikan dengan kompresi gzip, file JavaScript seringkali berukuran 80-90% lebih kecil dari sumber aslinya.
- Apakah kode saya diunggah ke server?
- Tidak. Minifier berjalan di browser Anda.
- Seberapa kecilkah JavaScript saya?
- Biasanya pengurangan 30–60%. Kode yang banyak variabel dengan pengidentifikasi panjang akan lebih memampatkan; kode yang banyak ekspresi akan mengompres lebih sedikit.
- Haruskah saya mengecilkannya dengan tangan?
- Tidak pernah. Pertahankan JavaScript yang dapat dibaca di sumbernya. Jalankan minifikasi sebagai langkah pembangunan atau sebagai bagian dari penerapan.
- Apakah ini berfungsi di TypeScript?
- TypeScript perlu dikompilasi ke JavaScript terlebih dahulu menggunakan tsc atau esbuild. Setelah dikompilasi, JavaScript yang dihasilkan dapat diperkecil.
Related Articles
DeveloperEssential Developer Tools: JSON, Base64, RegEx, and More
A comprehensive overview of the developer utilities every programmer should know, from data format converters to encoding tools.
9 min readDeveloper & SecurityHashing, Encryption, and Encoding Explained: A Developer's Security Guide
Understand the differences between hashing, encryption, and encoding. Learn when to use MD5, SHA-256, Base64, AES, and other cryptographic tools in your applications.
10 min readData & ProductivitySpreadsheet & Data Conversion Guide: Excel, CSV, JSON, and More
Learn how to convert between spreadsheet and data formats like Excel, CSV, JSON, and XML. Practical tips for handling data migration, cleaning, and transformation.
10 min readPrivacy & TechnologyWhy Browser-Based Tools Are the Future: No Installs, No Uploads, No Risk
Discover why browser-based tools are replacing desktop software and cloud uploads. Learn how client-side processing keeps your files private while delivering powerful functionality.
7 min read