在我最近的一个C#/ASP.NET项目中,我有一些相当复杂的JavaScript文件和一些漂亮的样式表。随着这些脚本资源的增长,建议压缩资源并尽可能保持网页轻盈。我知道许多开发人员在调试后手动将他们的JavaScript资源放入压缩器中,然后部署他们的应用程序。
当涉及到源代码控制和连续集成的自动化构建时(感谢CruiseControl.NET),手工压缩就不再适用了。保持JS/CSS源文件和它们被压缩后的兄弟姐妹分别存储在一个独立的目录结构中是维护源代码控制并提供压缩资源的唯一方法。然后只在代码后台注册其中一个资源集。但是,如果开发人员更改JS/CSS源文件,然后未能重新压缩并检入两个版本,则您的代码行现在已经失步了。更不用说不优雅了。
当涉及到源代码控制和连续集成的自动化构建时(感谢CruiseControl.NET),手工压缩就不再适用了。保持JS/CSS源文件和它们被压缩后的兄弟姐妹分别存储在一个独立的目录结构中是维护源代码控制并提供压缩资源的唯一方法。然后只在代码后台注册其中一个资源集。但是,如果开发人员更改JS/CSS源文件,然后未能重新压缩并检入两个版本,则您的代码行现在已经失步了。更不用说不优雅了。
我认为编写一个自定义可执行文件(如果还不存在的话)来处理CC.NET任务块会很好,该文件会在构建操作之后但在asp.net发布到目标之前,在目标目录中查找和压缩所有JavaScript和CSS资源。这样,开发人员只需处理JS和CSS源代码,用户只会得到已压缩的资源。
是否有已经执行此任务的应用程序?如果没有,我应该安装哪些资源才能让CC.NET执行此操作?
(我在这里找到的最接近的问题需要使用NAnt,但在我的情况下不是选项。)
编辑: Dave Ward现在在他的网站上有一篇关于如何在Visual Studio中自动压缩的绝佳文章。