缩小它们(我使用YUI Compressor)后更新javascript引用的最佳方法是什么?在构建过程中缩小后更新JavaScript引用
我正在使用ASP.NET mvc,并在开发过程中在每个文件中有一堆或JavaScript引用。在构建时(使用MSBuild),我将所有文件都缩减为单个文件。同时,我想用单个参考替换所有参考。这个应该是很常见的事情,但我找不到一个很好的干净的自动化的方式来做到这一点。
任何人有任何想法?由于
缩小它们(我使用YUI Compressor)后更新javascript引用的最佳方法是什么?在构建过程中缩小后更新JavaScript引用
我正在使用ASP.NET mvc,并在开发过程中在每个文件中有一堆或JavaScript引用。在构建时(使用MSBuild),我将所有文件都缩减为单个文件。同时,我想用单个参考替换所有参考。这个应该是很常见的事情,但我找不到一个很好的干净的自动化的方式来做到这一点。
任何人有任何想法?由于
我们使用自定义脚本管理器。在我们的msbuild过程中,YUI Compressor用于创建缩小版本,但也可以将几个较小的.js文件合并为一个更大的文件。这减少了请求的数量并因此加载时间。缩小版本和组合版本与可调试版本并行创建。
在运行期间,使用ScriptManager通过控制称为登记特定脚本,这是由它们的处于最小化状态名称提及。然后,脚本管理器将以DEBUG模式包含这些脚本(虽然我们执行的技巧包括HEAD中的脚本,而不是ClientScriptManager所做的)。在RELEASE模式下,脚本管理器将替换其缩小对象所知道的某些脚本。在将脚本合并为一个文件的情况下,管理器将被多次调用,每次注册相同的合并缩小文件。有些文件是托管在外部的:这也由脚本管理器处理。
缺点:
顺便说一句:我们不使用C#在MSBuild中运行的端口。当我第一次尝试它时,它有太多的错误。我们只需使用Exec任务调用YUI Compressor。
一对夫妇的想法映入脑海:
1)利用发布的修补程序允许的.js文件的调试/智能感知版本:KB958502
这将允许你写的(虽然是一个)大的,完全可读的js文件,但是参考脚本src中的完整版本,可以在构建期间生成。 hofix使VS能够找到名为“-vsdoc.js”或“.debug.js”的文件来代替引用的文件(所以你在src属性中引用了“/scripts/myscript.js”,但IDE会首先查看为“/scripts/myscript-vsdoc.js”,然后是“/scripts/myscript.debug.js”,最后它会查找“/scripts/myscript.js” - 在Visual Web Developer team blog上可以找到更多信息。
2)其他人张贴上custom script managers他们写道,这将在调试期间主要参考版本,但在释放模式将要求最小化版本。
3)我确定我在某处读过,虽然我现在找不到它,但是有人编写了自己的HTML助手扩展方法,这会根据buid模式正确生成脚本调用 - 与瑞克的想法类似的过程,但允许您以更“常用”的方式工作,尽管我不确定智能感知如何发挥出来。
我现在倾向于1--使用类似于Nick Berardi的过程:How to create a YUI Compressor MSBuild Task生成最小化的js。
感谢您的意见。几个后续问题: 如何在运行时检测构建模式(发布版或调试版)? 您提到“scriptmanager被控件调用以注册特定脚本”。你使用ms ajax吗?我使用的是ext js,所以通常会在头部注册js。 – NabilS 2009-02-11 22:27:11