2009-05-04 12 views
409

Gibt es irgendwelche Befehlszeilenskripte und/oder Online-Tools, die die Auswirkungen der Vermintung umkehren können, ähnlich wie Tidy entsetzliches HTML aufräumen kann?Tool zum Deinminifizieren/Dekomprimieren von JavaScript

(ich bin auf der Suche speziell eine minimierte JavaScript-Datei, so Variablenumbenennung noch ein Problem sein könnte unminify.)

+3

Für diejenigen von Ihnen, die vielleicht nicht wissen, ändert Minification interne Variablennamen in einen einzelnen Buchstaben und entfernt Code-Kommentare. Das Rückgängigmachen dieser Änderungen kann nicht automatisiert werden. –

+0

@DanielAllenLangdon Guter Punkt. Ich habe die Frage so bearbeitet, dass sie nicht mehr bedeutet, dass die Minimierung die Variablennamen nicht ändert. –

+11

FWIW ... gerade gefunden JS NICE http://www.jsnice.org/ –

Antwort

484

Sie diese verwenden können: http://jsbeautifier.org/ Aber es hängt von der minify Methode, die Sie verwenden, diese man formatiert nur den Code, ändert weder die Variablennamen noch dekomprimiert die base62-Codierung.

edit: in der Tat kann es auspacken "verpackt" Skripte (mit Dean Edwards Packer gepackt: http://dean.edwards.name/packer/)

+2

+1 - Ich habe diese Methode schon einmal verwendet, und jsbeautifier.org ist ein ausgezeichneter Service. –

+0

Danke. Genau das habe ich gesucht. –

+0

meinst du base64-Codierung? Ich habe noch nie von Base62 Codierung gehört ... – rmeador

15

Kannst du nicht einfach einen Javascript-Formatierer verwenden (http://javascript.about.com/library/blformat.htm)?

+0

+1 für die Antwort, die auch funktioniert. fabien gerade passiert zuerst zu antworten –

+0

Dies beantwortet nur die "dekomprimieren" Teil der Frage. –

+0

Nein, das funktioniert nicht gut. Es bricht den Code ... :( – Ramesh

55

Verstanden! JSBeautifier macht genau das, und Sie haben sogar Optionen für die automatische Formatierung.

+5

stackoverflow-dann-google statt google-then-stackoverflow? :)))) – dfa

+0

Ich habe die Google für "Javascript Formatter Online" – cgp

+1

Dieses FireFox-Plugin verwendet JSBeautifier zu Un-Minify javascript so können Sie dann Haltepunkte auf Linien in FireBugs js Debugger setzen !!: https://addons.mozilla.org/en-US/firefox/addon/javascript-demonifier/ –

5

Als Alternative (da ich bis jetzt noch nichts über jsbeautifier.org wusste), habe ich ein Bookmarklet verwendet, das den Decode-Button in Dean Edwards Packer wieder aktiviert hat.

Ich fand die Anweisungen und Bookmarklet here.

hier ist das Bookmarklet (falls die Seite nicht erreichbar ist)

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);}} 
6

Die meisten IDEs bieten auch Funktionen zur automatischen Formatierung. Zum Beispiel in NetBeans, drücken Sie einfach STRG + K.

137

In den Chrome-Entwicklertools ist diese Funktion integriert. Rufen Sie die Entwicklertools auf (Drücken von F12 ist in eine Richtung), in der Registerkarte "Quellen" enthält die Leiste unten links eine Reihe von Symbolen. Das Symbol "{}" ist "Pretty print" und führt diese Konvertierung bei Bedarf durch.

UPDATE: IE9 "F12 Entwickler-Tools" hat auch eine "Format JavaScript" -Funktion in der Registerkarte Skript unter dem Symbol Tools dort. (siehe Tipp # 4 in F12 The best kept web debugging secret)

enter image description here

+1

Für die bestimmten .js ich habe versucht Um zu entminieren, funktionierte diese Methode am besten, Prost. – igneosaur

+1

Dies ist jetzt in der Registerkarte "Quellen", nicht auf der Registerkarte Skripte. – mhenry1384

+0

@ mhenry1384: Ja, Chrome hat die Registerkarte umbenannt. Ich habe die Antwort entsprechend aktualisiert. –

13

In Firefox Spider und Rhino Sie beliebigen Code in eine anonyme Funktion wickeln kann und seine toSource Methode aufrufen, die Ihnen eine schön formatierte Quelle für die Funktion.

toSource auch Streifen Kommentare.

E. g.:

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

P. S.: ein "Online-Tool", aber alle Fragen zu allgemeinen Verschönerungstechniken sind geschlossen Es ist nicht als Duplikate dieser einen

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

Wird in einen String umgewandelt werden.

+0

Interessant. Ich habe die Frage vor 2,5 Jahren gestellt, so dass ich denke, es ist zu spät, um den Titel zu bearbeiten, aber ich mag es immer noch, sowohl Online- als auch Offline-Optionen zu sehen. Danke fürs Einlochen. +1 –

8

Wenn Sie ein Mac und Textmate haben - eine einfache Alternative für Javascript Formatierung:

  1. Öffnen Sie die Datei mit Textmate.
  2. Klicken Sie auf> Bundles> JavaScript> Dokument neu formatieren
  3. Öffnen Sie ein Bier.
+2

Bier wird gerade serviert :) – dgilperez

6

Ähnlich Stone ‚s Antwort, aber für Windows/.NET-Entwickler:

Wenn Sie Visual Studio und ReSharper haben - eine einfache Alternative für Javascript Formatierung:

  • Öffnen Sie die Datei mit Visual Studio.
  • Klicken Sie auf ReSharper> Extras> Reinigungscode (Strg + E, C);
  • Wählen Sie "Standard: Formatierungscode", und klicken Sie auf OK;
  • Öffnen Sie ein Bier.
3

Pretty Diff wird verschönern (Pretty Print) JavaScript in einer Weise, die JSLint und JSHint Leerraum Algorithmen entspricht.

+0

Es ist ironisch, die Seite ist so un-hübsch, aber das ist ein cooles Werkzeug. –

4

Trotz seiner Meilen-away-from-being-recht-Schnittstelle, sind JSPretty ein gutes, kostenloses und Online-Tool JavaScript-Quellcodes für Menschen lesbaren zu machen. Sie können Ihren bevorzugten Einzugstyp erzwingen und auch Verschleierung erkennen.

Verwandte Themen