16

展開プロセスに JS を縮小するステップはありますか? コメントと console.logs を残して自動的に削除できる、JavaScript 用のプリプロセッサはありますか? あなたの JavaScript マシンは GWT または Script# によって生成されていますか? 展開を自動化するために ANT または別のツールを使用していますか?

エディターからそのまま出てきたように見える JavaScript がたくさんあり、空白とコメントがたくさんあります。デプロイされたコードの状態を気にしないことによるものと、オープン Web の精神によるものはどれくらいあるのでしょうか?

4

13 に答える 13

11

私は通常、バグがないことを確認するためにJSLintでチェックアウトしてから、 YUI コンプレッサーでパック/エンコードします。

于 2009-06-04T19:01:29.120 に答える
4

私の手順は次のとおりです。

  1. Javascript Tools バンドルがインストールされた TextMate を使用して Javascript を作成します。この JSLint はファイルを保存するたびに保存され、エラーが発生したときに通知されます。
  2. Sprocketsを使用して、さまざまな Javascript ファイルを自動的に連結します。
  3. 結果の連結を jsmin で実行して、縮小版を生成します。

最終的に、連結された lib.js ファイルと縮小された lib.min.js ファイルが作成されます。1 つは開発用、もう 1 つは本番用です。TextMate コマンドは、すべてを自動化するのに役立ちます。

スクリプトを実際に (単体) テストするための優れたソリューションをまだ探しています。

于 2009-06-04T22:31:18.777 に答える
2

YUI Compressorを確認してください。このコンソール アプリを使用すると、圧縮 (コメントや空白などを削除) したり、javascript ファイルを難読化したりできます。

于 2009-06-04T19:00:32.743 に答える
2

Douglas Crockford のJSMinです。Studio のマクロとして、また一部の大規模プロジェクトのポスト ビルド アイテムとして接続しました。

于 2009-06-04T19:19:47.417 に答える
2

FWIW、これは Javascript ソースを最小化するためのさまざまな方法に関する興味深いミニ ベンチマークです。

http://www.ericmmartin.com/comparison-of-javascript-compression-methods/

要するに:

  • HTTP プロトコルでの gzip 圧縮は本当に違いを生みます (ただし、サーバー側で CPU コストを支払う必要があります)。
  • 縮小(空白/コメントの削除、変数名の変更など)も役立ちます。最良の結果が必要な場合は、gzip圧縮と一緒に使用してください
  • js ベースのデコンプレッサは役に立たない可能性が高く、サイズが小さくなる可能性はありますが、クライアントの CPU オーバーヘッドが大きくなります。
于 2009-06-30T00:02:56.837 に答える
1

当社の製品の 1 つで、すべての Javascript ファイルを連結し (ほとんどのファイルがほとんどのページで使用されるため、これは理にかなっています)、Javascript::Minifierを使用します。これにより、速度が大幅に向上しました。

于 2009-06-04T19:02:35.157 に答える
1

その多くはおそらく、接続が遅い低速のマシンでページを表示している可能性のある人々を気にせず、全員が 50Mbps の回線と 3 ギガの RAM を持っていると想定しているためです。

.NET 環境でのビルド プロセスの一環として、(手書き + プラグイン、jQuery など) JS を縮小しています。プリプロセッサはありません。これは、時間が許せば必ず行うべきことです。

PS ところで、console.log は使用していません。IE が壊れてしまうからです。代わりに、次のような単純なラッパー関数があります。

function log(stuff) {
    if (window.console && window.console.log) {
        console.log(stuff);
    }
};
于 2009-06-04T19:16:45.563 に答える
1

サーバー側でそれを実行し、ソースフォルダーから取得したもののキャッシュを保持するPHPスクリプトがあります。

于 2009-06-05T03:07:46.237 に答える
0

ワンワードパッカー

于 2009-06-04T18:57:05.213 に答える
0

js の展開に対する私のアプローチを共有したいと思いました。このブログ投稿をご覧ください: http://www.picnet.com.au/blogs/Guido/post/2009/12/10/Javascript-runtime-compilation-using-AspNet-and-Googles-Closure-Compiler. aspx

これには、実行時に (必要に応じて) コンパイルするコード (Google のクロージャ コンパイラを使用) も含まれます。

ありがとうグイド

于 2009-12-10T03:10:54.833 に答える
0

ろうそくに火をつけ、IE6 エラーに対する祈りを囁き、「実行」をクリックします。それは重要ですか?:)

于 2009-06-04T19:23:43.443 に答える
0
  1. テキストはよく gzip/圧縮される傾向があるため、私は独自の JavaScript コードを縮小しません。
  2. 私は非常に大きな(たとえば> 100 kb)javascriptライブラリを縮小します(しかし、おそらく、そのような大きなライブラリを使用したくないでしょう(または、使用したものを出荷するだけです))。

私は、Javascript の縮小化の多くは (実際には) 宣言されたエンドユーザーのパフォーマンスの向上ではなく、JavaScript コードのある種の (無駄な) 難読化を達成するために行われていると信じがちです。

于 2009-06-04T19:52:38.190 に答える
0

YUI Compressor の .NET ポートもあり、次のことが可能です:-

  • 縮小化/ファイルの結合を Visual Studio ビルド後のイベントに統合する
  • TFS ビルド (CI を含む) に統合する
  • 独自のコードで dll を使用するだけの場合 (たとえば、その場での縮小)。
于 2009-07-07T00:15:15.397 に答える