在缩小它们之后更新javascript引用的最佳方法是什么(我使用YUI Compressor)?
我正在使用ASP.NET mvc,并且在开发期间在每个文件中都有一堆或javascript引用。在构建时(使用MSBuild)我将所有文件缩小为单个文件。同时我想用单引用替换所有引用。这个问题很常见,但我找不到一个干净的自动化方法。
有人有什么想法吗?感谢
答案 0 :(得分:4)
我们使用自定义脚本管理器。在我们的msbuild过程中,YUI Compressor用于创建缩小版本,但也可以将几个较小的.js文件合并为一个较大的.js文件。这减少了请求的数量,从而减少了加载时间。缩小版和组合版是与可调试版本并行创建的。
在运行时期间,控件会调用scriptmanager来注册特定脚本,这些脚本由其未经指定的名称引用。然后,脚本管理器将只在DEBUG模式下包含这些脚本(尽管我们执行的技巧包括HEAD中的脚本,而不是ClientScriptManager所做的主体)。在RELEASE模式下,scriptmanager将替换其缩小对应的已知脚本。对于组合到一个文件中的脚本,管理器被多次调用,每次都注册相同的组合缩小文件。有些文件是外部托管的:这也是由scriptmanager处理的。
下行:
顺便说一下:我们不使用C#端口在MSBuild中运行。当我第一次尝试它时,它有太多的错误。我们只需用Exec任务调用YUI Compressor。
答案 1 :(得分:2)
有一些想法浮现在脑海中:
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” - 可以在{{上找到更多信息3}}
2)其他人发布了他们写的Visual Web Developer team blog,它会在调试期间引用主版本,但在发布模式下会请求最小化版本。
3)我确定我在某个地方读过,虽然我现在找不到它,关于编写自己的HTML帮助扩展方法的人,会根据buid模式适当地生成脚本调用 - 类似处理Rick的想法,但允许你以更“平常”的方式工作,虽然我不确定它在intellisense中表现得如何。
我现在倾向于1 - 使用类似于Nick Berardi的过程:custom script managers来生成最小化的js。