javascript - 在构建过程中缩小后更新 javascript 引用

标签 javascript asp.net-mvc minify

缩小后更新 javascript 引用的最佳方法是什么(我使用 YUI Compressor)?

我正在使用 ASP.NET mvc,并且在开发过程中每个文件中都有一堆或 javascript 引用。在构建时(使用 MSBuild),我将所有文件缩小为单个文件。同时我想用单个引用替换所有引用。这应该是很常见的事情,但我找不到一个很好的干净的自动化方法来做到这一点。

有人有什么想法吗?谢谢

最佳答案

我们使用自定义脚本管理器。在我们的 msbuild 过程中,YUI Compressor 用于创建缩小版本,也用于将几个较小的 .js 文件合并为一个较大的文件。这减少了请求的数量,从而减少了加载时间。缩小版本和组合版本与可调试版本并排创建。

在运行时,脚本管理器被控件调用以注册特定的脚本,这些脚本由它们未最小化的名称引用。然后脚本管理器将只在 DEBUG 模式下包含这些脚本(尽管我们执行了一个技巧,将脚本包含在 HEAD 中,而不是像 ClientScriptManager 那样在主体中包含脚本)。在 RELEASE 模式下,scriptmanager 将用缩小的对应脚本替换它已知的某些脚本。在脚本合并到一个文件的情况下,管理器被调用多次,每次都注册相同的合并的缩小文件。一些文件在外部托管:这也由脚本管理器处理。

缺点:

  • 关于缩小哪些文件的知识是重复的:脚本管理器和构建脚本必须同步。
  • 添加新脚本时,它们不会自动缩小(我个人认为这是一个好点;我希望缩小是一种选择)

顺便说一下:我们不使用 C# 端口在 MSBuild 中运行。当我第一次尝试它时,它有太多错误。我们只需使用 Exec 任务调用 YUI Compressor。

关于javascript - 在构建过程中缩小后更新 javascript 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/534503/

相关文章:

c# - 委托(delegate)不起作用

ruby - 有解压 CSS 的 Ruby Gem 吗?

javascript - react js将对象添加到状态数组

javascript - 使用 jQuery/Javascript 防止任何形式的页面刷新

asp.net-mvc - 如何获取数据表中选定的表格单元格值

asp.net-mvc - WIF 不适用于 ASP.NET MVC 4

javascript - 使用 grunt 通过配置合并来自不同目录的 js 文件

css - 如何使用 Gulp 从 SASS 文件生成缩小的 CSS

javascript - 是否可以将函数的所有参数作为该函数内的单个对象获取?

javascript - 在 rails : No route matches [GET] error 中引用外部 css