利用可能な最高の JavaScript コンプレッサーは何ですか? 次のようなツールを探しています。
- 使いやすい
- 圧縮率が高い
- 信頼できる最終結果を生成する (コードを台無しにしない)
利用可能な最高の JavaScript コンプレッサーは何ですか? 次のようなツールを探しています。
私は最近、JavaScript で記述された JavaScript コンプレッサーであるUglifyJSをリリースしました (NodeJS Node.jsNode.js
プラットフォームで実行されますが、内部を必要としないため、任意の JavaScript エンジンで実行するように簡単に変更できます)。YUI CompressorとGoogle Closureの両方よりもはるかに高速で、テストしたすべてのスクリプトでYUIよりも圧縮率が高く、Closure よりも安全です (「eval」または「with」を処理することを知っています)。
空白の削除以外に、UglifyJS は次のことも行います。
foo["bar"]
しますfoo.bar
PS: ああ、「美化」もできます。;-)
数年後にこの質問を再検討すると、UglifyJSが現時点で最良の選択肢のようです。
以下に示すように、これは NodeJS プラットフォームで実行されますが、任意の JavaScript エンジンで実行するように簡単に変更できます。
--- 以下の古い回答 ---
Google がリリースしたClosure Compilerは、こことここで見られる限り最小のファイルを生成しているようです
それ以前は、さまざまなオプションは次のとおりでした
基本的に、初期圧縮ではPackerの方が優れていますが、ネットワークで送信する前にファイルを gzip する場合 (これを行う必要があります) 、 YUI Compressorが最小の最終サイズになります。
テストはjQueryコードで行われました。
@ daniel jamesがコメントの Compressorrater に言及しており、Packerが最高の圧縮でチャートをリードしていることを示しているので、ymmv だと思います
YUI Compressorが最適です。それは優れた圧縮率を持ち、十分にテストされ、多くのトップサイトで使用されており、まあ、私が個人的に推奨しています.
JavaScript エラーやしゃっくりが 1 つも発生することなく、プロジェクトに使用しています。そして、それには素晴らしいドキュメントがあります。
CSS 圧縮機能を使用したことはありませんが、同様に存在します。CSS 圧縮も同様に機能します。
注: Dean Edwards の / packer / は YUI Compressor よりも優れた圧縮率を実現していますが、使用中にいくつかの JavaScript エラーに遭遇しました。
私は Dojo プロジェクトのShrinkSafeを使用しています。実際には JavaScript インタープリター ( Rhino ) を使用してコード内のシンボルの検索やそのスコープの理解などを処理するため、これは例外的です。正規表現を使用して同じことを行う多くの圧縮ツールとは対照的です(信頼性は高くありません)。
私は実際に、現在の Visual Studio ソリューションのWeb 配置プロジェクトにMSBuild タスクを持っています。このタスクは、配置する前に ShrinkSafe を介してソリューションのすべての JS ファイルを実行するスクリプトを実行し、非常にうまく機能します。
EDIT:ちなみに、「最良」の基準はプロジェクトのニーズによって異なるため、「最良」については議論の余地があります。個人的には、ShrinkSafe はバランスが取れていると思います。最小サイズ == ベストと考える人にとっては、それでは不十分です。
編集: YUI コンプレッサーも Rhino を使用していることは注目に値します。
JSMinを試してみてください。C #、Java、C、およびその他のポートを取得し、すぐに利用できます。
Packerを使用する場合は、「変数の縮小」オプションを実行して、結果のコードをgzipで圧縮します。base62オプションは、サーバーがgzip圧縮されたファイルを送信できない場合にのみ使用できます。'shrink vars'を使用したPackerは、YUIの圧縮を向上させますが、どこかでセミコロンをスキップした場合、バグが発生する可能性があります。
base62は基本的に貧乏人のgzipです。そのため、base62-edコードをgzipで圧縮すると、shrink-var-edコードをgzip圧縮するよりも大きなファイルが得られます。
JSMinは別のものです。
銀の弾丸を検索して、この質問を見つけました。RubyonRailsの場合 http://github.com/sstephenson/sprockets
これを行う HttpHandlerのソースコードは次のとおりです。
Js Crushは、圧縮後に使用するのに適したコンプレッサーです。
いつもbananascript.comが最高の結果をもたらしてくれました。
KJS圧縮
http://opensource.seznam.cz/KJScompress/index.html
Kjscompress/csskompress は、JavaScript と CSS を含むファイルから重要でない空白とコメントを削除する 2 つのアプリケーション (kjscompress と csscompress) のセットです。どちらも GNU/Linux オペレーティング システム用のコマンドライン アプリケーションです。