2011-10-18 24 views
5

私のクライアントの以前のWeb開発者が姿を消したので、私は最近プロジェクトを引き継いだ。私が処理しなければならないファイルは、ローカルサーバーに格納されているものだけです。私が遭遇した唯一の問題は、すべてのJSがClosure Compiler(またはそれに類するもの)を介して実行されているためです.JavaScriptを読むのは面倒です(少なくとも大きな関数の場合)。私はJSでヴァルスを再現するのに役立つ何かがあるので、私は見るものが何かを持っていますか?私は手でそれをしてきました、そして、それはかなり面倒です。おかげで事前にコードのClosure Compiler(または同様のもの)の効果を元に戻す方法はありますか?

var n = {}, 
     e = a.extend(n, x), 
     y = "pageLoaded", 
     u = "pageLoading", 
     c = "modLoaded", 
     w = "xhrComplete", 
     l = true, 
     v = false, 
     s = a("body"), 
     g = Modernizr.historymanagement, 
     f = "", 
     t = "", 
     r = "", 
     k = null, 
     b = window.History; 

:ここ

は私が扱ってるものの例です!

トレ

+1

アドバンストモードでコンパイルされていると、私はできないと思います。 Closure CompilerのAdvanced Mode変換は一方向です。マッピングはone-oneまたはonではないため、元のソースに戻ることはできません。コンパイルされたJavaScriptは非常に最適化され、書き直されて非常に効率的です。しかし、コードがSIMPLE MODEで単純に縮小されている場合は、変数名を簡単に置き換えることができます。あなたのコードから判断すると、おそらくSIMPLE MODEです。なぜなら、 "a"の下にある "extend"関数の名前が変更されるからです。 –

+0

そして、Closure Compilerからの出力のような "におい"はありません。それは、他のミニマーで詰め込まれているかもしれません。 –

答えて

2

号のように、オンラインJavascriptのbeautifiersのいずれかを試してみてください。ある程度、リテラルが割り当てられているときにトークンを置き換えることができます。たとえば、lのすべてのインスタンスをtrueおよびvと置き換えてコード内にfalseと置き換えることができます。しかし、逆転するのがはるかに複雑になる他のことがあり、誰もそれに多くの努力をしているとは思わない。

+0

ああ、私はこれのための言葉があったことを認識しませんでした。ヘッドアップをありがとう。しかし、私は多くを考えました。私は必要に応じてヴァースを物に差し込んでいます。ただ迷子にならないようにしています。それは本当にとても迷惑です。 – tr3online

+1

難読化されたコードとmungedコードを扱うのは難しいです。それを逆転させるのは苦しいです。変数をそれぞれのリテラルに置き換えるのは、おそらく最も簡単なことですが、JavaScriptのトークン化ツールや単純な正規表現を使用したより偏りのない程度で行うことができますが、それを行うユーティリティ - 私はずっと多く見たことがありますが、あるかもしれません)。次に、それをさらにリファクタリングして意味のある変数名を使用します。 –

+0

お勧めのツールはありますか?実際のリファクタリングサポートで何か? – FloydThreepwood

0

はそれがマングドだthis one

+0

提供されている例では、美化器によって既に実行されているようです。変数の名前を簡単に変更する方法を探していると思います。 – icktoofay

+0

ええ私は美化は必要ありません。私は、手で行う必要なしにヴァルスを再現するための簡単な方法があるのだろうかと思っています。すべてのものが 's.removeClass(" wait ")' 100 lines downなどを指しているときにコード内で少し失われてしまいます。 – tr3online

関連する問題