在我最近在C#/ ASP.NET上工作的一个项目中,我有一些相当复杂的JavaScript文件和一些漂亮的样式表.当这些脚本资源的大小增加时,建议尽量缩小资源并保持网页尽可能轻便.我知道很多开发人员在调试之后将他们的JavaScript资源手工提供给压缩器然后部署他们的应用程序.
在令人满意的持续集成世界中进行源代码控制和自动构建(谢谢CruiseControl.NET); 手压缩根本就不行.维护源代码控制和提供压缩资源的唯一方法是将JS/CSS源及其缩小的兄弟保持在单独的目录结构中.然后在代码隐藏中只注册一组资源或另一组资源.但是,如果开发人员对JS/CSS源进行了更改,然后无法重新压缩它并检入两个版本,那么您的代码行现在就不同步了.更不用说优雅了.
我认为为CC.NET任务块编写一个自定义可执行文件(如果还不存在)会很好,它可以在构建操作之后但在asp之前找到并压缩目标目录中的所有JavaScript和CSS资源.net发布到目标.这样,开发人员只能处理JS和CSS源,用户只能获得最小化的资源.
是否有应用程序已经执行此任务,如果没有,我应该在构建服务器上安装哪种资源以使CC.NET执行?
(我在这里找到的最接近的问题是需要NAnt,在我的情况下这不是一个选项.)
编辑: 戴夫沃德现在有一篇很棒的文章,关于如何在他的网站上自动缩小Visual Studio.
该MSBuildCommunityTasks项目有可能你在找什么,包括合并和JSCompress一些MSBuild任务.
您可以将这些添加到AfterBuild目标中的MSBuild项目中,以允许项目在每次构建项目时执行此操作,并且不会出现任何不同步的情况.然后,您的Web应用程序可以引用压缩版本进行运行,但开发人员可以编辑完整版本.
除了MSBuild社区任务程序集之外,服务器上不需要任何其他内容.您可以将此程序集放在您自己的源代码树中并从那里引用,您的CI构建应该在构建时获得该程序集及其所需的一切.