Yahoo! _ UI Compressor、Dean Edwards Packer、およびjsmin。これらは、結果として得られるフットプリントと難読化時のエラーの削減の両方の点で、より良い結果をもたらします。
8 に答える
最良のコンプレッサーを比較する優れた方法は、Arthur Blake によるJavaScript CompressorRaterです。
通常関心があるのは、GZIP で圧縮した後のサイズです (圧縮を実行するように Web サーバーを構成する必要があります)。
通常、最良の結果は、YUI CompressorまたはDojo ShrinkSafeからのものです。違いは非常に小さかったので、しばらくして比較をやめ、YUI Compressor だけを使用しました。
編集: この質問が最初に行われたときから、2 つの新しいミニファイアーがリリースされました。どちらも通常、YUI Compressor よりも優れていない場合でも、少なくとも同じくらい優れています。
- Google のClosure Compiler。場合によっては適用可能な積極的な高度な最適化モードが含まれています。
- Microsoft の Ajax Minifier (このページで「minifier」を検索)
編集2:
- 公式の 1.5 リリースのために jQuery チームによって選択されたUglifyJS
考慮すべき複数の要因があるため(リストしたものを超えても)、ここでは少し主観的です。
- 圧縮されたサイズがすべてを物語るわけではありません。積極的なコンプレッサーを使用すると、ブラウザーが解釈する前にコードのアンパックを実行するための追加の時間が必要になるため、実行時のパフォーマンスが低下する可能性があるためです。
- エラーは、入力コードを制御するときに回避するのが最も簡単です。セミコロンを適切に使用することは大いに役立ちます。コードに対して JSLint を実行し、報告された問題を修正します。
- もちろん、コード自体のスタイルとサイズは結果に影響します。
- 最後に、一部のコード圧縮ツールは gzip とより効果的に組み合わせることができますが、サーバー側の gzip 圧縮は常にコード圧縮よりもダウンロードが小さくなることに注意してください。
私のお勧めは、圧縮するコードを複数のコンプレッサーで実行し ( CompressorRaterなどの自動比較ツールが役立ちます...)、結果に基づいて選択することです。後で実際のページ読み込み時間をテスト、プロファイリング、比較することを忘れないでください。
完全な開示、私はこれの背後にあります: http://www.toptensoftware.com/minimeこれは、縮小、難読化、および合理的なリント スタイル チェックのセットを行います。現在、Yui よりも出力が小さく、Closure ほどではありません。
ぜひ Dojo Shrinksafeをチェックしてください。最近作り直され、明らかにパフォーマンスが改善されました。
これは古い質問であり、当時Google Closure Compilerは存在しませんでした。まだ使っていませんが、とても良さそうです。
Codeplex には、.NET 用の YUICompress のポート(TFS 用のビルド タスクを含む) もあります。
Mootools のユーザーとして、Mootools が Dean Edwards の Packer を YUI Compressor に置き換えたことに気づきました。また、Ajaxian.com で、Julien (Compressor の作成者) が YUI Compressor の優れた点を指摘した議論があったことも覚えています。私は Compressor を使用していて問題は見たことがありませんが、難読化するときにどちらがより少ないエラーを生成するかを調べたことはありません。
YUI Compressor は、Packer よりも安全かつコンパクトに圧縮します。私は、Packer が JavaScript を完全に形成する必要があると考えています。そうしないと、スクリプトがロードされたときに JavaScript エラーが発生します。それでも、どちらを使用しても、ファイルを Gzip することで最大のパフォーマンス向上が得られます。