2012-02-19 18 views
0

推奨されるjavascriptコード難読化ツールはありますか?javascript code難読化ツール

私はそれをstackoverflowで検索し、誰かが 'YUI compressor'を提案します。

しかし、それだけで次のようにします。

  1. か何かのELEローカル変数を置き換える

  2. /新しい行をannotatation /ホワイトスペースを削除してください。

ただし、1つのオブジェクトのプロパティは置き換えません。

その後
var xxx,yy,zz; 
xxx=obj['yy'](); 
yy=obj['zz']; 

人でも再フォーマット私のコードは、彼もpropery /方法を知ることができない:私はこのような何かをしたい

var a=obj.fun(); 
var b=obj.pro; 

は、私は、このようなコードがあると彼がメソッド/プロパティの置換をやり直さない限り、1つのオブジェクトの

これは単なる例です。私は、単に圧縮する以外の難読化をしたいと思っています。

提案がありますか?

答えて

0

あなたがgoogle closure compilerを試してみてください、それは執筆の三つのレベルを提供しますWHITESPACE_ONLYはコメントを削除し、改行や不要なスペースを削除します。出力コードはソースJavaScriptと同じです。

SIMPLE_OPTIMIZATIONSも、ローカル変数および関数パラメータの名前を変更します。

  • グローバル変数のリネーム
  • をするために

をインライン化

  • 機能を差し出がましいの機能を削除します。

    ADVANCED_OPTIMIZATIONSは、上記の二つのレベルの最適化に加えて、それはまたし、最もアグレッシブであります与えられた例:

    WHITESPACE_ONLY結果は次のとおりです。

    //WHITESPACE_ONLY OUTPUT CODE 
    function unusedFunction(note){alert(note["text"])}function displayNoteTitle(note){alert(note["title"])}var flowerNote={};flowerNote["title"]="Flowers";displayNoteTitle(flowerNote); 
    

    SIMPLE_OPTIMIZATIONS結果は次のとおりです。

    //SIMPLE_OPTIMIZATIONS OUTPUT CODE 
    function unusedFunction(a){alert(a.text)}function displayNoteTitle(a){alert(a.title)}var flowerNote={title:"Flowers"};displayNoteTitle(flowerNote); 
    

    ADVANCED_OPTIMIZATIONS結果は次のとおりです。

    //ADVANCED_OPTIMIZATIONS OUTPUT CODE 
    alert("Flowers"); 
    

    私はSIMPLE_OPTIMIZATIONSADVANCED_OPTIMIZATIONSがあなたのニーズを満たすと思います。

  • +0

    'ADVANCED_OPTIMIZATIONS'モードはオブジェクトのプロパティやメソッドを変更するかもしれませんが、1つのメソッドを外部で公開する方法はありますか?だから、どんなコーディング標準ですか? – hguser

    +0

    うん、そうです。それはそれを強力かつ危険にします。そこには2つのソリューションがあります。まずすべてのjsを1つのファイルにまとめ、コンパイルします。これは非常に限られた使用法を持っています。 2番目の方法はexternsの使い方を調べています。あなたが保持したいシンボルを手動で宣言する必要があります。 'window ['dontReplaceme'] = dontReplaceme;'は 'dontReplaceme'関数を保存します。詳細については、[ここ](http://code.google.com/closure/compiler/docs/api-tutorial3.html#export)を参照してください。 – steveyang

    1

    Google Closure Compilerをお試しください。アドバンストモードでは、コードの一部をリファクタリングして、パフォーマンスの向上を実現します。

    +0

    クルー、私にそれを打つ;) –

    1

    Javascriptをされた名前変更プロパティを行うことを言う:私はGoogleの閉鎖コンパイラを提案したいと思います適切な分析を行って、コード内でオブジェクトがポップアップできる場所を見つけます。

    これらの理由から、オブジェクトのプロパティの名前を安全に変更することはできません。三番目はADVANCED_OPTIMIZATIONS

    である第二1はSIMPLE_OPTIMIZATIONS

  • で最初のものはWHITESPACE_ONLY
  • ある