Narzędzie do unminify / decompress JavaScript [zamknięte]


430

Czy są jakieś skrypty wiersza poleceń i / lub narzędzia online, które mogą odwrócić efekty minifikacji, podobnie jak Tidy może wyczyścić przerażający HTML?

(W szczególności chcę unminifyzować zminimalizowany plik JavaScript, więc zmiana nazwy może nadal stanowić problem).


4
Dla tych z was, którzy mogą nie być świadomi, minification zmienia nazwy zmiennych wewnętrznych na jedną literę i usuwa komentarze do kodu. Cofnięcia tych zmian nie można zautomatyzować.
Vivian River

@DanielAllenLangdon Dobra uwaga. Zredagowałem pytanie, aby nie sugerowało, że minimalizacja nie zmienia nazw zmiennych.
Andy Ford

12
FWIW ... właśnie znalazłem JS NICE jsnice.org
Andy Ford

marcusjenkins.com/linux/… działał dobrze dla mnie.
ychaouche,

1
Dla @DanielAllenLangdon: jsnice.org może unminifikować i zaciemnić nawet 30k kodu angularjs.
Zielony

Odpowiedzi:


504

Możesz użyć tego: http://jsbeautifier.org/ Ale to zależy od używanej metody minify, ta tylko formatuje kod, nie zmienia nazw zmiennych ani nie dekompresuje kodowania base62.

edycja: w rzeczywistości może rozpakować „spakowane” skrypty (wypełnione pakerem Deana Edwarda: http://dean.edwards.name/packer/ )


2
+1 - Użyłem już tej metody, a jsbeautifier.org to doskonała usługa.
Dan Lew

Dzięki. Właśnie tego szukałem.
Andy Ford


4
czy istnieje coś takiego jak narzędzie, które „zmienia nazwy zmiennych” i wciąż ma świadomość składni JS, aby nie złamać kodu?
Jorge Vargas,

3
zrobiłbym to 10 razy, gdybym mógł. właśnie uratowałem mnie przed zmarnowanym dniem!
benlumley,

154

Narzędzia dla programistów Chrome mają tę wbudowaną funkcję. Wyświetl narzędzia programistyczne (naciśnięcie klawisza F12 to jeden sposób), na karcie Źródła lewy dolny pasek zawiera zestaw ikon. Ikona „{}” to „Pretty print” i dokonuje tej konwersji na żądanie.

AKTUALIZACJA: IE9 „Narzędzia programistyczne F12” ma również funkcję „Formatuj JavaScript” na karcie Skrypt pod ikoną Narzędzia. ( patrz Porada 4 w F12 Najlepiej strzeżony sekret debugowania sieci )

wprowadź opis zdjęcia tutaj


1
W przypadku konkretnego pliku .js, którego próbowałem cofnąć, ta metoda działała najlepiej, na zdrowie.
igneozaur

1
Znajduje się teraz na karcie „Źródła”, a nie na karcie Skrypty.
mhenry1384

@ mhenry1384: Tak, Chrome zmienił nazwę karty. Odpowiednio zaktualizowałem odpowiedź.
Jon Adams

TAK!! (nasza aplikacja nie ma trybu debugowania / deweloperskiego dla js, o którym wiem - na szczęście nie skracamy / przekształcamy nazw zmiennych).
Steven Lu

2
Po prostu jeden na jednego: Chrome czasami psuje kod JavaScript. Na przykład if (a) /regex/.match(foo);jest dość drukowany jako if (a)\n / /regex/ .\nmatch(foo);błąd składniowy.
amfetamachina

56

Rozumiem! JSBeautifier robi dokładnie to, a ty masz nawet opcje automatycznego formatowania.


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

Zrobiłem Google dla „javascript formatter online”
cgp

1
Ta wtyczka FireFox używa JSBeautifier do cofania minimalizacji javascript, dzięki czemu można następnie ustawić punkty przerwania dla linii w debuggerze js FireBuga !!: addons.mozilla.org/en-US/firefox/addon/javascript-deminifier
BT


14

W Firefoksie, SpiderMonkey i Rhino możesz owinąć dowolny kod w anonimową funkcję i wywołać jej toSourcemetodę, która da ci ładnie sformatowane źródło funkcji.

toSource usuwa również komentarze.

Np. :

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

Zostanie przekonwertowany na ciąg:

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

PS : To nie jest „narzędzie online”, ale wszystkie pytania dotyczące ogólnych technik upiększania są zamknięte jako duplikaty tego.


Ciekawy. Zadałem to pytanie 2,5 roku temu, więc wydaje mi się, że jest za późno na edycję tytułu, ale nadal lubię widzieć zarówno opcje online, jak i offline. Dzięki za wejście. +1
Andy Ford

10

Jeśli masz komputer Mac i TextMate - łatwą alternatywą dla formatowania Javascript jest:

  1. Otwórz plik za pomocą Textmate.
  2. Kliknij> Pakiety> JavaScript> Reformatuj dokument
  3. Roztrzaskuj piwo.

2
Teraz podaje się piwo :)
dgilperez

6

Większość IDE oferuje również funkcje automatycznego formatowania. Na przykład w NetBeans, po prostu naciśnij Ctrl + K .


5

Alternatywnie (ponieważ do tej pory nie wiedziałem o jsbeautifier.org) skorzystałem z bookmarkletu, który ponownie włączył przycisk dekodowania w Packerze Deana Edwarda.

Tutaj znalazłem instrukcje i bookmarklet .

tutaj jest bookmarklet (na wypadek, gdyby strona nie działała)

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

Podobne do odpowiedzi Stone'a , ale dla programistów Windows / .NET:

Jeśli masz program Visual Studio i ReSharper - łatwą alternatywą dla formatowania Javascript jest:

  • Otwórz plik za pomocą Visual Studio;
  • Kliknij ReSharper> Narzędzia> Kod czyszczenia (Ctrl + E, C);
  • Wybierz „Domyślnie: kod ponownego formatowania” i kliknij OK;
  • Roztrzaskuj piwo.

4

Pomimo tego, że jest bardzo ładny interfejs, JSPretty jest dobrym, darmowym i internetowym narzędziem do tworzenia czytelnych kodów źródłowych javascript. Możesz wymusić preferowany typ wcięcia, a także wykryć zaciemnianie.





Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.