Unminify JS: Memulihkan Keterbacaan JavaScript Terminifikasi
JavaScript yang diminifikasi memadatkan bundle menjadi satu baris padat dengan nama variabel satu huruf. Tempelkan ke unminifier JS online dan alat ini menyisipkan kembali spasi, jeda baris, dan indentasi dalam detik - tidak ada unggahan, tidak ada instalasi, tidak ada yang dikirim ke server.
FreetoolOnline editorial team| Properti | Nilai |
|---|---|
| Format | Alat online, tanpa install |
| Kecepatan | Di sisi browser; output terbaca dalam hitungan detik |
| Privasi | Sumber tetap di perangkat; tidak ada yang di-upload |
| Penggantian nama variabel | Tidak dilakukan - nama satu huruf tetap satu huruf |
| Alat implementasi | https://freetoolonline.com/developer-tools/js-unminifier.html |
Apa yang sebenarnya dilakukan unminify (dan apa yang tidak bisa dilakukannya)
Apa yang sebenarnya dilakukan unminify: menyisipkan kembali spasi, baris baru, dan indentasi pada JavaScript terminifikasi agar bundle satu baris terbaca - nama identifier pendek tidak bisa dipulihkan.
Walkthrough tiga menit
Walkthrough tiga menit: tempel JS minified ke JS Unminifier, jalankan beautify, salin keluaran berindentasi - di browser, tanpa unggah logika ke server.
- Salin bundle terminifikasi. Buka file
.min.jsdi editor Anda atau di tab network browser (Response body), pilih semua, salin. - Tempel ke editor. Buka https://freetoolonline.com/developer-tools/js-unminifier.html dan tempel ke panel input. Bundle panjang - ratusan KB atau lebih - bekerja, tetapi tunggu pass format butuh satu atau dua detik saat parser berjalan melewati AST.
- Klik Unminify. Panel kanan menampilkan output yang terindentasi. Salin hasil kembali ke editor Anda atau simpan sebagai file
.jslokal untuk pembacaan gaya grep.
Di mana output unminified membantu dan di mana tidak
Membaca kode pihak ketiga yang sudah di-unminify bermanfaat dalam tiga situasi konkret. Pertama, triase kerentanan - ketika CVE menyebut fungsi di dalam bundle vendor, unminify memungkinkan Anda menemukan situs panggilan dan membaca alur sekitarnya tanpa menyiapkan repo asli. Kedua, konfirmasi perilaku - ketika perilaku library berubah antar versi, membandingkan versi unminified menampilkan perubahan jauh lebih cepat daripada membaca bentuk padat satu baris. Ketiga, verifikasi output build - ketika pipeline Anda sendiri memancarkan bundle yang secara misterius memuat ganda polyfill, bentuk unminified menampilkan blok IIFE duplikat sekilas. Unminify tidak akan membantu ketika tujuannya adalah nama semantik asli; untuk itu, kirim source map bersama bundle dan muat di debugger Anda.
Apa yang dipertahankan, apa yang hilang
Apa yang dipertahankan, apa yang hilang: spasi dan indentasi kembali dari pohon parse; komentar dan nama pendek seperti a/b/fn1 tetap hilang.
Ingin ke arah sebaliknya?
Jika Anda tiba di sini ingin mengecilkan JS untuk produksi alih-alih memperluasnya, alat pendamping di https://freetoolonline.com/developer-tools/js-minifier.html melakukan arah maju (penghapusan spasi putih, penyingkatan identifier) dan panduan perbandingan CSS Minifier vs Uglifier vs Tree-Shaking mencakup bagaimana tiga transformasi bertumpuk dalam pipeline build tipikal. Untuk padanan sisi CSS, lihat CSS Unminifier vs Prettier: Kapan Menggunakan yang Mana - keputusan sisi JS serupa: unminify saat membaca output pihak ketiga, source map saat debug milik Anda sendiri.
Pertanyaan yang sering diajukan
Apakah unminify memulihkan nama variabel asli?
Tidak. Minifier mengganti identifier dengan nama sintetis pendek saat build dan membuang yang asli; output unminified mempertahankan nama sintetis. Muat source map yang sesuai di debugger browser Anda untuk melihat simbol asli.
Apakah sumber diunggah ke mana pun?
Tidak. Pass unminify berjalan sepenuhnya di browser Anda; teks terminifikasi tidak pernah dikirim ke server. Tutup tab dan input hilang.
Apakah unminify akan merusak JavaScript?
Tidak. Transformasi murni kosmetik - spasi putih, baris baru, dan indentasi. AST tidak berubah, sehingga kode unminified berjalan identik dengan minified asli. Jalankan melalui pemeriksa sintaks jika Anda ingin konfirmasi sabuk-pengaman.
Berapa batas ukuran file?
Bundle hingga beberapa megabyte bekerja di browser modern; waktu pass format tumbuh hampir linear dengan panjang input. Bundle yang sangat besar (10 MB+) dapat menggagalkan tab; dalam hal itu pisahkan bundle berdasarkan batas closure dan unminify setiap chunk secara terpisah.
Apa perbedaan antara unminify dan prettier?
Unminify memulihkan format terbaca pada kode yang sengaja dipadatkan. Prettier (atau formatter serupa) memberlakukan style guide yang dipilih pada kode yang sudah terbaca. Untuk bundle pihak ketiga yang terminifikasi, unminify dulu; jika Anda kemudian ingin lebar indentasi atau gaya tanda kutip tertentu, jalankan prettier pada output.
Ketika tujuan Anda adalah menghasilkan JS lebih kecil daripada membacanya, panduan how to minify css js for cloud run cold start mencakup langkah-langkah pipeline build untuk menghapus CSS dan JS sebelum deployment container.
Tampilan nama identifier setelah unminify
Unminify memulihkan spasi putih dan struktur, tidak memulihkan nama identifier asli. Nama variabel lokal yang dipersingkat (huruf tunggal seperti a, b, fn1) tetap dipersingkat. Nama yang diekspor biasanya dipertahankan karena minifier melewati pemendekan simbol yang diekspor agar API modul tetap utuh. Untuk memperkecil JS, gunakan JS minifier - menghapus spasi putih, komentar, dan mempersingkat variabel lokal sambil mempertahankan nama yang diekspor.