1
  • Google Closure Compiler を調べたところ、これが見つかりまし。「const」、「let」、およびその他の Javascript 1.7 タグは好きではありません。
  • UgliifyJS も Javascript 1.7 をサポートしていないようです。
  • YUI Compressor は getter/setter のような ECMASCRIPT 機能を受け入れません

現在、Javascript 1.7 の機能をサポートするコンプレッサーはありますか? 私が必要とする唯一のことは、コメント/空白をクリアすることです(GCCのWHITESPACE_ONLY類似物)。

4

2 に答える 2

3

Firefox 拡張機能で使用される JavaScript を書き換える必要がある場合は、同じ JavaScript エンジンを使用することをお勧めします。JSHydraという JavaScript 書き換えエンジンがあります。当初は SpiderMonkey をコンパイルする必要がありましたが、 Parser APIのおかげで不要になりました。プリコンパイルされたJavaScript シェル ナイリー(jsshell-OS-ARCHアーカイブ)の 1 つを取得し、それを介して単純なスクリプトを実行できます (スクリプトは元の JSHydra バイナリとまったく同じことを行います)。

js jshydra.js scripts/astDecompile.js scriptToRecompile.js > recompiled.js

これにより、JavaScript エンジンがスクリプトを解析し、scripts/astDecompile.js(J​​SHydra の一部であるスクリプト) を実行して逆コンパイルし、JavaScript コードに戻します。コメントは「自動的に」削除され (JavaScript エンジンはそれらを保持しません)、逆コンパイルされたコードには改行以外の空白がほとんどありません。改行は、必要に応じて簡単に削除できます。

公式の JSHydraリポジトリには逆コンパイルのバグが多数あるため、代わりに私のフォークを使用することをお勧めします。

于 2012-10-11T15:17:49.477 に答える