私たちは新しい .NET 4.5 プロジェクトを立ち上げようとしており、Javascript や CSS ファイルなどの静的アセットを処理するソリューションを探しています。要するに、開発環境での開発とデバッグが容易で、本番環境での最大のパフォーマンスとキャッシュ制御が可能なソリューションにしたいと考えています。
要件
- LESS をサポートする必要があります。
- バンドルされた JS/CSS ファイルの順序を制御できる必要があります。
- すべてのファイルではなく、ディレクトリ内のファイルのサブセットをバンドルできる必要があります。
- ファイルの更新時にクライアントのキャッシュを壊すには、ファイル ハッシュまたは最終変更のタイムスタンプをクエリ文字列 (例: main.js?3B1F88A7) として CSS/JS ファイル名に追加する必要があります。
- web.config コンパイル デバッグが「オン」に設定されている場合、ファイルを個別のスクリプト/リンク タグとして含めて、開発とデバッグ (開発モード) を簡素化します。
- web.config コンパイル デバッグが「オフ」に設定されている場合、ファイルを縮小して単一の CSS/JS ファイルにバンドルし、積極的なキャッシュ ヘッダーを設定します (プロダクション モード)。
- バンドルと縮小は、ビルド後のスクリプトではなく、ユーザーがページを要求したときに行われます。
- 特定のサブページで複数の Web サイト/異なるバンドルをサポートするには、同じ Web サイトに複数の JS/CSS バンドルを含めることができる必要があります。
- 複数のサーバーで運用環境をサポートする必要があります。
あった方がよい
- インテリセンス(CSSのクラス名など)を壊さなければいいですね。
.NET 4.5 ( http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4 -5-series.aspx ) と Cassette ( http://getcassette.net/ )もチェックしましたが、知る限り、「すぐに使える」すべての要件を満たしているものはありません。
では、ベストプラクティスとして何を考えますか? Cassette のようなサード パーティ ソリューション、.NET 4.5 機能のカスタム ビルド ソリューション (「標準の .NET」ですが、.LESS をサポートしていないため、これが気に入っています) またはまったく別のものを使用する必要がありますか?
どんなアイデアや考えでも大歓迎です!