1

JavaScript参照を縮小した後に更新する最良の方法は何ですか(私はYUI Compressorを使用しています)?

私はASP.NETmvcを使用しており、開発中に各ファイルに多数のまたはjavascript参照があります。ビルド時に(MSBuildを使用して)すべてのファイルを1つのファイルに縮小します。同時に、すべての参照を単一の参照に置き換えたいと思います。これは非常に一般的なことですが、それでも私はそれを行うためのすてきなクリーンな自動化された方法を見つけることができません。

誰かアイデアはありますか?ありがとう

4

2 に答える 2

4

カスタム スクリプト マネージャーを使用します。私たちの msbuild プロセスでは、YUI Compressor を使用して縮小バージョンを作成しますが、複数の小さな .js ファイルを 1 つの大きなファイルに結合することもできます。これにより、リクエストの数が減り、ロード時間が短縮されます。縮小バージョンと結合バージョンは、デバッグ可能なバージョンと並行して作成されます。

実行時に、scriptmanager はコントロールによって呼び出され、最小化されていない名前で参照される特定のスクリプトを登録します。スクリプト マネージャーは、これらのスクリプトを DEBUG モードでインクルードします (ただし、ClientScriptManager のように本文ではなく、HEAD にスクリプトをインクルードするトリックを実行します)。RELEASE モードでは、scriptmanager は、既知の特定のスクリプトを縮小された対応するスクリプトに置き換えます。1 つのファイルに結合されたスクリプトの場合、マネージャは複数回呼び出され、そのたびに同じ結合された縮小ファイルが登録されます。一部のファイルは外部でホストされています。これは scriptmanager によっても処理されます。

欠点:

  • どのファイルが縮小されているかについての知識が重複しています。scriptmanager とビルド スクリプトの両方が同期している必要があります。
  • 新しいスクリプトが追加されても、自動的に縮小されることはありません (個人的にはこれは良い点だと思います。縮小を選択できるようにしたいです)。

ところで、MSBuild での実行に C# ポートは使用しません。最初に試したときは、バグが多すぎました。Exec タスクで YUI Compressor を呼び出すだけです。

于 2009-02-11T09:39:47.863 に答える
2

いくつかのアイデアが思い浮かびます。

1) .js ファイルのデバッグ/インテリセンス バージョンを許可するためにリリースされた修正プログラムを利用します: KB958502

これにより、(1 つではありますが) 大きくて完全に読み取り可能な js ファイルを作成できますが、ビルド中に生成できるスクリプト src で完全なバージョンを参照できます。hofix により、VS は、参照されたファイルの代わりに「-vsdoc.js」または「.debug.js」という名前のファイルを見つけることができます (そのため、src 属性で「/scripts/myscript.js」を参照しますが、IDE は最初に「/scripts/myscript-vsdoc.js」、次に「/scripts/myscript.debug.js」、最後に「/scripts/myscript.js」を探します - Visual Webでもう少し詳しい情報を見つけることができます開発者チームのブログ.

2) 他の人は、デバッグ中にメイン バージョンを参照するカスタム スクリプト マネージャーに投稿しましたが、リリース モードでは最小化されたバージョンを要求します。

3) ビルド モードに応じてスクリプト呼び出しを適切に生成する独自の HTML ヘルパー拡張メソッドを作成した人について、現時点では見つけることができませんが、どこかで読んだことは確かです - Rick のプロセスと同様のプロセスアイデアですが、より「通常の」方法で作業できるようにしますが、インテリセンスでどれだけうまく機能したかはわかりません.

現時点では 1 に傾いています - Nick Berardi のここに似たプロセスを使用しています:最小化された js を生成するYUI コンプレッサー MSBuild タスクを作成する方法。

于 2009-02-11T00:08:34.600 に答える