在我最近使用 C#/ASP.NET 进行的一个项目中,我有一些相当复杂的 JavaScript 文件和一些漂亮的样式表。随着这些脚本资源规模的增长建议减少资源 http://developer.yahoo.com/yui/compressor/当然,并使您的网页尽可能简单。我知道许多开发人员在调试后将 JavaScript 资源手动输入压缩器,然后部署他们的应用程序。
当谈到令人满意的持续集成世界中的源代码控制和自动化构建时(谢谢CruiseControl.NET http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET);用手压缩根本不行。维护源代码控制和提供压缩资源的唯一方法是将 JS/CSS 源代码及其缩小的兄弟保留在单独的目录结构中。然后在代码隐藏中仅注册一组资源或另一组资源。但是,如果开发人员对 JS/CSS 源代码进行了更改,然后未能重新压缩它并签入两个版本,那么您的代码行现在不同步。更不用说不优雅了。
我认为最好为 CC.NET 任务块编写一个自定义可执行文件(如果尚不存在),该任务块将在构建操作之后但在 asp 之前查找并压缩目标目录中的所有 JavaScript 和 CSS 资源.net 发布到目标。这样,开发人员只需处理 JS 和 CSS 源,而用户只能获得缩小的资源。
是否有一个应用程序已经执行此任务,如果没有,我应该在构建服务器上安装哪种类型的资源才能执行 CC.NET?
(The 最接近的问题 https://stackoverflow.com/questions/258781/best-packing-strategy-for-js-during-continuous-integration我可以在这里找到所需的 NAnt,这在我的情况下不是一个选项。)
EDIT:戴夫·沃德 (Dave Ward) 现在有一篇很棒的文章如何在 Visual Studio 中自动缩小 http://encosia.com/2009/05/20/automatically-minify-and-combine-javascript-in-visual-studio/在他的网站上。
The MSBuild 社区任务项目 https://github.com/loresoft/msbuildtasks/有一些 MSBuild 任务可以满足您的需求,包括 Merge 和 JScompress。
您可以将这些添加到 AfterBuild 目标中的 MSBuild 项目中,以允许项目在每次构建项目时执行此操作,并且不会出现任何不同步的情况。然后,您的 Web 应用程序可以引用压缩版本来运行,但开发人员将编辑完整版本。
除了 MSBuild 社区任务程序集之外,服务器上不需要其他任何东西。您可以将此程序集放入您自己的源代码树中并从那里进行引用,并且您的 CI 构建应该获得该程序集及其构建时所需的所有内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)