0

私はクロージャコンパイラを使用してスクリプトを縮小および連結しています。ADVANCED_OPTIMIZATIONSフラグを使用して、さらに縮小する魔法を使いたいと思います。ただし、このフラグを使用して機能しない場合、いくつかのスクリプトで警告が表示されます。その1つのフラグステップを一連の小さなオプションに渡す代わりに、どれがそれを壊しているかを確認したいと思います。おそらく、提供されているサイズの縮小は100%にはなりませんが、近いです。

フラグの個々の機能をオンにするために、Google クロージャー コンパイラ オプションに渡す小さな個々のフラグはあります'ADVANCED_OPTIMIZATIONS'か?

4

2 に答える 2

0

短い答えは「いいえ」です。

SIMPLE_OPTIMIZATIONSとの間のジャンプADVANCED_OPTIMIZATIONSは巨大に見えるかもしれませんが、実際には 2 つの主要な問題に帰着します。

  1. デッドコードの排除
  2. プロパティの名前変更

これらの項目の両方について、コンパイラはこれを正しく行うために同じ情報セットを必要とします。が必要だ:

  • コードへのすべての参照の詳細 - コード自体内とコンパイル済みコード外の参照の両方。
  • コンパイルされたコードが使用する外部ライブラリ、シンボル、またはコード スニペットに関する情報。

これら 2 つの情報を知ることで、コンパイラはパブリック/グローバル プロパティと変数の名前を安全に変更できるだけでなく、使用されていないコードを完全に削除することもできます。

への移行ADVANCED_OPTIMIZATIONSは大変な作業になる可能性がありますが、コード サイズとパフォーマンスに大きなメリットが生じる可能性もあります。プロセスに役立つヒント:

  • 公式ドキュメントの「注意事項」セクションを読んで理解してください。
  • コンパイル済みコードのデバッグに関するヒントについては、コンパイラ プロジェクトのFAQを確認してください。
  • を使用しwarning_level=VERBOSEます。より多くの警告が生成されますが、壊れたコードの原因となるプロパティの欠落などを特定するのに役立ちます。
  • たくさん質問して
于 2013-04-09T17:17:54.063 に答える
0

Java API を使用して、コンパイラの最適化を調整できます。基本的に、コマンド ラインをカスタマイズします:
http://blog.bolinfest.com/2009/11/calling-closure-compiler-from-java.html

別の方法として、コンパイラのカスタム ビルドを作成し、高度なモードで使用するオプションをいじることもできます。

参照: applyFullCompilationOptions

in: CompilationLevel.java

http://closure-compiler.googlecode.com/git-history/805436ff85a6975fb482aa298c8f3bce4a2a832f/src/com/google/javascript/jscomp/CompilationLevel.java

于 2013-04-11T05:55:39.703 に答える