Alat untuk Meminminasikan / Mengompres JavaScript [ditutup]


430

Apakah ada skrip baris perintah dan / atau alat online yang dapat membalikkan efek minifikasi mirip dengan bagaimana Tidy dapat membersihkan HTML yang mengerikan?

(Saya secara khusus ingin menghapus file JavaScript yang diperkecil, jadi penggantian nama variabel mungkin masih menjadi masalah.)


4
Bagi Anda yang mungkin tidak sadar, minifikasi mengubah nama variabel internal menjadi satu huruf dan menghapus komentar kode. Membatalkan perubahan ini tidak dapat otomatis.
Sungai Vivian

@DanielAllenLangdon Poin bagus. Saya telah mengedit pertanyaan sehingga tidak lagi menyiratkan bahwa minifikasi tidak mengubah nama variabel.
Andy Ford

12
FWIW ... baru saja menemukan JS NICE jsnice.org
Andy Ford

marcusjenkins.com/linux/… bekerja dengan baik untuk saya.
ychaouche

1
Untuk @DanielAllenLangdon: jsnice.org dapat menghapus dan menghapus kode 30k angularjs.
Hijau

Jawaban:


504

Anda dapat menggunakan ini: http://jsbeautifier.org/ Tapi itu tergantung pada metode minify yang Anda gunakan, ini hanya memformat kode, itu tidak mengubah nama variabel, atau pengkodean base62 uncompress.

sunting: sebenarnya ia dapat membongkar skrip "dikemas" (dikemas dengan pembungkus Dean Edward: http://dean.edwards.name/packer/ )


2
+1 - Saya telah menggunakan metode ini sebelumnya, dan jsbeautifier.org adalah layanan yang sangat baik.
Dan Lew

Terima kasih. Inilah yang saya cari.
Andy Ford


4
apakah ada yang namanya alat yang "mengubah nama variabel" dan masih mengetahui sintaks JS untuk tidak merusak kode?
Jorge Vargas

3
akan naik ini 10 kali jika aku bisa. baru saja menyelamatkan saya dari hari yang sia-sia!
benlumley

154

Alat pengembang Chrome memiliki fitur ini bawaan. Memunculkan alat pengembang (menekan F12 adalah satu arah), pada tab Sumber, bilah kiri bawah memiliki serangkaian ikon. Ikon "{}" adalah "Cetak cantik" dan melakukan konversi ini sesuai permintaan.

PEMBARUAN: IE9 "F12 developer tools" juga memiliki fitur "Format JavaScript" di tab Script di bawah ikon Tools di sana. ( lihat Tip # 4 di F12 Rahasia debugging web terbaik disimpan )

masukkan deskripsi gambar di sini


1
Untuk .js tertentu yang saya coba hapus, metode ini bekerja paling baik, tepuk tangan.
igneosaur

1
Ini sekarang di tab "Sumber", bukan tab Skrip.
mhenry1384

@ mhenry1384: Ya, Chrome mengganti nama tab. Saya memperbarui jawabannya.
Jon Adams

IYA!! (Aplikasi kami tidak memiliki mode debug / dev untuk js yang saya ketahui - syukurlah kami tidak mempersingkat / mengubah nama variabel.)
Steven Lu

2
Hanya kepala-up: Chrome terkadang mengacaukan kode JavaScript. Sebagai contoh, if (a) /regex/.match(foo);cukup dicetak sebagai if (a)\n / /regex/ .\nmatch(foo);kesalahan sintaks.
amfetamachine

56

Oke! JSBeautifier melakukan hal ini, dan Anda bahkan memiliki opsi untuk pemformatan otomatis.


5
stackoverflow-then-google bukannya google-then-stackoverflow? :))))
dfa

Saya melakukan google untuk "javascript formatter online"
cgp

1
Plugin FireFox ini menggunakan JSBeautifier untuk membatalkan-minify javascript sehingga Anda kemudian dapat menetapkan breakpoints pada baris di debugger js FireBug !!: addons.mozilla.org/en-US/firefox/addon/javascript-deminifier
BT


14

Di Firefox, SpiderMonkey dan Rhino Anda dapat membungkus kode apa pun menjadi fungsi anonim dan memanggil toSourcemetode tersebut, yang akan memberi Anda sumber fungsi yang diformat dengan baik.

toSource juga strip komentar.

E. g. :

(function () { /* Say hello. */ var x = 'Hello!'; print(x); }).toSource()

Akan dikonversi ke string:

function () {
    var x = "Hello!";
    print(x);
}

PS : Ini bukan "alat online", tetapi semua pertanyaan tentang teknik mempercantik umum ditutup sebagai duplikat dari yang ini.


Menarik. Saya mengajukan pertanyaan 2,5 tahun yang lalu jadi saya merasa sudah terlambat untuk mengedit judul, tapi saya masih suka melihat opsi online dan offline. Terima kasih telah membantu. +1
Andy Ford

10

Jika Anda memiliki Mac dan TextMate - Alternatif mudah untuk memformat Javascript adalah:

  1. Buka file dengan Textmate.
  2. Klik pada> Bundel> JavaScript> Format Ulang Dokumen
  3. Buka bir.

2
Bir dilayani sekarang :)
dgilperez

6

Sebagian besar IDE juga menawarkan fitur pemformatan otomatis. Misalnya di NetBeans, cukup tekan CTRL + K .


5

Sebagai alternatif (karena saya tidak tahu tentang jsbeautifier.org sampai sekarang), saya telah menggunakan bookmarklet yang mengaktifkan kembali tombol decode di Dean Edward's Packer.

Saya menemukan petunjuk dan bookmarklet di sini .

di sini adalah bookmarklet (jika situsnya down)

javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}}




5

Mirip dengan jawaban Stone , tetapi untuk pengembang Windows / .NET:

Jika Anda memiliki Visual Studio dan ReSharper - Alternatif mudah untuk memformat Javascript adalah:

  • Buka file dengan Visual Studio;
  • Klik pada ReSharper> Tools> Cleanup Code (Ctrl + E, C);
  • Pilih "Default: Reformat code", dan klik OK;
  • Buka bir.

4

Meskipun memiliki jarak yang jauh dari antarmuka yang cantik, JSPretty adalah alat yang bagus, gratis, dan online untuk membuat kode sumber javascript yang dapat dibaca oleh manusia. Anda dapat memberlakukan jenis indentasi yang Anda sukai dan juga dapat mendeteksi kebingungan.





Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.