缩小 JavaScript 引用后更新它们的最佳方法是什么(我使用 YUI Compressor)?
我正在使用 ASP.NET mvc,并且在开发期间每个文件中都有一堆或 javascript 引用。在构建时(使用 MSBuild),我将所有文件缩小为单个文件。同时我想用单个引用替换所有引用。这应该是一件很常见的事情,但我找不到一个很好的干净的自动化方法来做到这一点。
有人有想法么?谢谢
缩小 JavaScript 引用后更新它们的最佳方法是什么(我使用 YUI Compressor)?
我正在使用 ASP.NET mvc,并且在开发期间每个文件中都有一堆或 javascript 引用。在构建时(使用 MSBuild),我将所有文件缩小为单个文件。同时我想用单个引用替换所有引用。这应该是一件很常见的事情,但我找不到一个很好的干净的自动化方法来做到这一点。
有人有想法么?谢谢
我们使用自定义脚本管理器。在我们的 msbuild 过程中,YUI Compressor 用于创建缩小版本,也可以将几个较小的 .js 文件合并为一个较大的文件。这减少了请求的数量,从而减少了加载时间。缩小版本和组合版本与可调试版本并排创建。
在运行时,控件调用脚本管理器来注册特定的脚本,这些脚本由它们的最小化名称引用。然后,脚本管理器将仅在 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上找到开发者团队博客。
2) 其他人发布了他们编写的自定义脚本管理器,该管理器将在调试期间引用主版本,但在发布模式下会请求最小化版本。
3)我确定我在某个地方读到过,虽然我现在找不到,关于有人编写了自己的 HTML 帮助扩展方法,这将根据 buid 模式适当地生成脚本调用 - 类似于 Rick 的过程想法,但允许您以更“通常”的方式工作,尽管我不确定它与智能感知的效果如何。
我目前倾向于 1 - 使用类似于 Nick Berardi 的过程:如何创建 YUI Compressor MSBuild 任务以生成最小化的 js。