JavaScriptを非圧縮/解凍するツール[終了]


430

Tidyが恐ろしいHTMLをクリーンアップする方法と同様に、縮小の影響を元に戻すことができるコマンドラインスクリプトやオンラインツールはありますか?

(具体的には、縮小されたJavaScriptファイルを縮小することを目指しているので、変数の名前の変更がまだ問題になる可能性があります。)


4
気付かないかもしれない人のために、縮小化は内部変数名を1文字に変更し、コードコメントを削除します。これらの変更を元に戻すことは自動化できません。
ビビアンリバー

@DanielAllenLangdon良い点。質問を編集したので、縮小によって変数名が変更されないことを意味しなくなりました。
アンディフォード

12
FWIW ... JS NICE jsnice.orgを
Andy Ford

marcusjenkins.com/linux/…はうまく機能しました。
ychaouche 2015年

1
@DanielAllenLangdonの場合:jsnice.orgは、30kのangularjsコードでさえ、非縮小化して難読化を解除できます。
グリーン

回答:


504

これを使用できます:http : //jsbeautifier.org/しかし、これは使用しているminifyメソッドに依存します。これはコードをフォーマットするだけで、変数名を変更したり、base62エンコードを解凍したりしません。

編集:実際には、「パックされた」スクリプトを解凍できます(Dean Edwardのパッカーでパックされた:http : //dean.edwards.name/packer/


2
+1-以前にこの方法を使用したことがあり、jsbeautifier.orgは優れたサービスです。
Dan Lew、

ありがとう。これはまさに私が探していたものです。
アンディフォード

5
いいえ、私はベース62と言いました:dean.edwards.name/packerおよびen.wikipedia.org/wiki/Base_62
FabienMénager09年

4
「変数名を変更する」ツールなど、コードを壊さないようにJS構文をまだ認識しているものはありますか?
ホルヘバルガス、

3
私ができるならこれを10倍にするでしょう。無駄な日から私を救っただけです!
ベンラムリー2009

154

Chromeデベロッパーツールには、この機能が組み込まれています。開発ツールを起動します(F12を押すのも1つの方法です)。[ソース]タブの左下のバーには、一連のアイコンがあります。「{}」アイコンは「きれいなプリント」であり、この変換をオンデマンドで行います。

更新:IE9の「F12開発者ツール」には、「スクリプト」タブの「ツール」アイコンの下にある「JavaScriptのフォーマット」機能もあります。(F12のヒント#4を参照してください。最良のWebデバッグの秘密

ここに画像の説明を入力してください


1
私が縮小しようとしていた特定の.jsに対して、この方法は最高にうまくいきました。
イグノサウルス2010年

1
これは、[スクリプト]タブではなく、[ソース]タブにあります。
mhenry1384 2012

@ mhenry1384:はい、Chromeはタブの名前を変更しました。私はそれに応じて答えを更新しました。
ジョンアダムス

はい!!(私たちのアプリには、私が知っているjsのデバッグ/開発モードがありません-ありがたいことに、変数名を短縮/変換しません。)
Steven Lu

2
ただの注意点:ChromeがJavaScriptコードをめちゃくちゃにすることがあります。たとえば、構文エラーであるif (a) /regex/.match(foo);としてかなり印刷されif (a)\n / /regex/ .\nmatch(foo);ます。
amphetamachine

56

とった!JSBeautifierはこれを正確に行い、自動フォーマットのオプションさえあります。


5
google-then-stackoverflowの代わりにstackoverflow-then-google?:))))
dfa

「javascript formatter online」のグーグルをやった
cgp

1
このFireFoxプラグインはJSBeautifierを使用してJavaScriptを縮小化しないため、FireBugのjsデバッガーの行にブレークポイントを設定できます!!:addons.mozilla.org/en-US/firefox/addon/javascript-deminifier
BT


14

Firefox、SpiderMonkey、Rhinoでは、任意のコードを匿名関数にラップし、そのtoSourceメソッドを呼び出すことができます。これにより、関数の適切にフォーマットされたソースが提供されます。

toSource コメントも取り除きます。

例:

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

文字列に変換されます:

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

PS:これは「オンラインツール」ではありませんが、一般的な美化テクニックに関するすべての質問は、このツールの複製としてクローズされます。


面白い。2.5年前に質問したので、タイトルを編集するのは遅すぎると思いますが、オンラインとオフラインの両方のオプションを見るのが好きです。声をお寄せいただきありがとうございます。+ 1
アンディフォード

10

MacとTextMateを使用している場合-JavaScriptをフォーマットする簡単な方法は次のとおりです。

  1. Textmateでファイルを開きます。
  2. >バンドル> JavaScript>ドキュメントの再フォーマットをクリックします
  3. ビールを割ってください。

2
ビールは現在提供されています:)
dgilperez

6

ほとんどのIDEは、自動フォーマット機能も備えています。たとえば、NetBeansでは、CTRL + Kを押すだけです。


5

別の方法として(これまでjsbeautifier.orgについて知らなかったため)、ディーンエドワードパッカーのデコードボタンを再度有効にするブックマークレットを使用しました。

手順とブックマークレットはこちらにあります。

これはブックマークレットです(サイトがダウンしている場合)

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

Stoneの回答に似ていますが、Windows / .NET開発者向けです。

Visual StudioとReSharperを使用している場合-JavaScriptをフォーマットする簡単な方法は次のとおりです。

  • Visual Studioでファイルを開きます。
  • ReSharper> Tools> Cleanup Code(Ctrl + E、C)をクリックします。
  • 「デフォルト:コードの再フォーマット」を選択し、「OK」をクリックします。
  • ビールを割ってください。

4

JSPrettyは、かなり離れたところにありますが、JavaScriptのソースコードを人間が読めるようにするための無料のオンラインツールです。好みのタイプのインデントを強制でき、難読化も検出できます。




3

jsbeautifier.orgの出力に満足していなかったため、さらに検索を行ったところ、次のサイトが見つかりました。http://www.centralinternet.com.br/javascript-beautifier

私にとっては非常にうまくいきました。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.