JavaScript を圧縮するには、YUI Compressor または新しい Google Closure コンパイラを使用する必要がありますか?

StackOverflow https://stackoverflow.com/questions/1686428

質問

YUI Compressor は最小化に最適なツールであるとのコンセンサスがありましたが、Closure の方が優れている可能性があるようです。

役に立ちましたか?

解決

私は現時点では一般的な答えだと思う「あなたはあなたのための最良を見つけるどちら」 - YUIはとても間違いなく現時点での最良のツールであるとしてコンセンサスを持っているいずれかになります長く利用されています。 YUIとそこにあるとして閉鎖と豊富な経験がないので - 閉鎖のに対し、私たちに新しいです。したがって、私はあなたがそれが新という理由だけで、それを持つ人々の経験に基づいて閉鎖を使用する理由の説得力のある実世界の引数を見つけるだろうとは思わない。

それは言うの仕方についての私のラウンド....あなたはクロージャを使うべきではないと言うことではないですが、私は人々の数は2を使用し、それらを比較するまで、これに対する可能な答えはないと思います。

編集: 初期の比較のカップルは閉鎖が改善を与えないと言って、があります。 http://blog.feedly.com/2009/ 11月6日/グーグル閉鎖-VS-YUI-分/
http://news.ycombinator.com/item?id=924426する

さらに、編集: 閉鎖のための問題のリストに目を保つワース: http://code.google.com / P /閉鎖コンパイラ/問題/リスト

他のヒント

私が見たの比較から、閉鎖は、ファイルサイズを最小限に抑えるという点で明確な勝者であるように思われます。この記事では、YUIコンプレッサーと閉鎖コンパイラ間の圧縮を比較するために、3つの人気のJSライブラリ(jQueryの、プロトタイプ、MooToolsの)を使用しています。 のhttp:// WWW .bloggingdeveloper.com /ポスト/閉鎖コンパイラ-VS-YUI-コンプレッサー-比較-Javascriptを圧縮-Tools.aspxする

クロージャは、特に、そのアドバンストモードで、各試験に前に出てくる「約60%の圧縮を提供することにより、YUIコンプレッサーよりもコードサイズ約20~25%より多くを最小化する。」

閉鎖は、簡易モードまたは詳細モードで使用することができます。それが唯一のさらなる圧縮を取得するための関数内のローカル変数の名前を変更するような単純なモードでは、ほとんどのJavaScriptコードのためにかなり安全です。

アドバンスモードでは、はるかに積極的です。これは、オブジェクトリテラルのキーの名前を変更し、それは彼らが副作用のない単純な値を返すと判断できる場合には、インライン関数を呼び出します。

function Foo()
{
  return "hello";
}

alert(Foo());

に変換されます:

alert("hello");

このコード:

var o = {First: "Mike", Last: "Koss"};
alert(o);

に変換されます:

alert({a:"Mike",b:"Koss"});

あなたはこのような名前を引用することによって、オブジェクトリテラル内のキーの値を変更することから高度なモードを防ぐことができます:

{'First': "Mike", 'Last': "Koss"}

あなたはクロージャコンパイラサイトのrel="noreferrer"> Googleのインタラクティブ

jQueryの1.5 のように見えるだけで、 UglifyJSするます:

  

また、このスイッチを使用して、我々はしました   からUglifyJSを使っへ移動   Googleの閉鎖コンパイラ。私たちは見てきました   いくつかの固体のファイルサイズの改善   それを使用しているので、我々は非常に満足しています   スイッチ付きます。

コード次第だと思います。独自のコードをコンパイルしたい場合は、コードにパッチを当てて動作するようにする価値があると思います。 クロージャコンパイラ (最初は少しぎこちなく見えるかもしれません)。私は信じている クロージャコンパイラ すぐにそのような仕事では、すぐにが一番の選択肢になるでしょうし、コードを少し整理して、一貫したスタイルを維持することもできます (もちろん、それは好みによって異なります。嫌いな部分もあるかもしれません。私はそう思います:P)。

他のライブラリに依存している場合、私の意見では、それらがリリースされるまで少し待つ必要があります クロージャコンパイラ 互換性のあるバージョン。世にあるほとんどの人気のあるライブラリでは、それほど時間はかかりません。また、あなた自身が使用している「あまりアクティブではない」ライブラリの修正を提供できるかもしれません。

私が話しているのは 高度なコンパイル ここでのモードは、 シンプルなコンパイル 一部の人が指摘しているように、このモードはかなり安全に使用できます。

そして、これとは別の意見があります - Google閉鎖?あまり面白くありませんでした. 。少し厳しすぎるかもしれませんが、読んでいただければ幸いです。どちらが良いかは時間が経てば分かると思います =)

2012 年 10 月の時点で、YUI コンプレッサーは廃止されたか、少なくとも YUI では使用されないようです。 http://www.yuiblog.com/blog/2012/10/16/state-of-yui-compressor/

あなたはここにいくつかのテストを行い、各ブラウザに優れているかを見ることができます。 http://jsperf.com/closure-vs-yuiする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top