我一直在我的应用程序中使用Combres在运行时压缩、组合和缩小我的 javascript 和 css。这非常有效,并且完美地满足了YSlow。
现在,出于性能原因,我正在重新考虑整个过程,而且我更多地考虑在构建时而不是运行时完成所有这些工作。
我希望我能在没有太多麻烦的情况下得到一些关于如何做到这一点的建议。是否有可以满足我需要的现有工具(类似于 Combres)?
认识唧唧喳喳
Chirpy 捣碎、缩小和验证您的 javascript、样式表和无点文件。
啾啾很脆。使用适用于 .Net 的 Google Closure Tools 或 YUI Compressor 来缩小和混合您所有的宝贵资产。它很容易,很灵活,而且是自动的。
MSBuild 社区任务项目有一个 JSCompress 任务。在此处查看项目:http: //msbuildtasks.tigris.org/
这是有关如何实际执行此任务的另一个资源: http ://www.justise.com/2007/04/20/javascript-and-css-compression-in-msbuild/
我最初使用Chirpy进行捆绑,但后来转移到了Bundler。Bundler允许我在一个性感的构建文件(powershell)中相对轻松地将所有内容很好地连接起来。我个人已经远离了 Visual Studio 构建事件,并开始在独立环境中运行构建。这有助于我处理诸如Github到Team City持续集成 (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
您还可以查看 ajaxtoolkit,他们有 2 个用于压缩 JS 的任务。