私はアプリケーションでCombresを使用して、実行時にjavascriptとcssを圧縮、結合、縮小してきました。これは非常にうまく機能し、YSlowを完全に満たします。
現在、パフォーマンス上の理由からプロセス全体を再考しています。これらすべてを実行時ではなくビルド時に実行することを考えています。
あまり面倒なことなく、これを行う方法について少しアドバイスが得られることを願っています。必要なことを実行できる既存のツール(Combresに類似)はありますか?
Chirpyに会う
Chirpyは、JavaScript、スタイルシート、およびドットレスファイルをマッシュし、最小化し、検証します。
Chirpyはチッピーです。GoogleClosureToolsまたはYUICompressorfor .Netを使用して、貴重な資産をすべて縮小してマッシュアップします。簡単で、柔軟性があり、自動です。
MSBuildコミュニティタスクプロジェクトにはJSCompressタスクがあります。ここでプロジェクトをチェックしてください:http: //msbuildtasks.tigris.org/
このタスクを実際に実装する方法に関する別のリソースは次のとおりです 。http ://www.justise.com/2007/04/20/javascript-and-css-compression-in-msbuild/
私はもともとChirpyを使用してバンドルを行っていましたが、その後Bundlerに移行しました。Bundlerを使用すると、すべてをセクシーなビルドファイル(PowerShell)に比較的簡単に接続できます。私は個人的にVisualStudioビルドイベントから離れ、スタンドアロン環境でビルドの実行を開始しました。これは、 GithubからTeam City Continuous Integration(CI)への移行に役立ちます。
ビルドファイルが「できた」状態は次のようになります。(注は完全には実行されない可能性があります。これはテストされていません)
# Set up varriables for build script
$invocation = (Get-Variable MyInvocation).Value
$directorypath = Split-Path $invocation.MyCommand.Path
$BundlerDir = "$directorypath\build_tools\bundler\"
$AppRoot = "$directorypath\SomeApp.Web\"
$ScriptsDir = "scripts\"
$CssDir = "css\"
# Run Bundler to Combine and Minify
&($BundlerDir + "node.exe") ( $BundlerDir + "bundler.js") ($AppRoot +$CssDir) ($AppRoot + $ScriptsDir)
# Everything else...
# Clean the bins
# Build the projects
# Run the tests
また、JSの圧縮のための2つのタスクがあるajaxtoolkitを見ることができます。