使用包含的 Javascripts 进行捆绑和缩小在 MVC 5 项目模板中没有意义

Bundling and Minification with included Javascripts doesn't make sense in MVC 5 project template

这是默认的 MVC 5 项目的 BundleConfig。

如您在调试模式下所见,EnableOptimization 默认处于禁用状态。

前两个包对我来说没有任何意义,因为每个包都包含一大堆重复的脚本(缩小的和非缩小的,包括智能感知、validate-vsdoc 等...)。

包含所有这些 JavaScript 文件并禁用优化有什么意义?即使启用优化,如果我设置 BundleTable.EnableOptimizations = true;,包含所有这些 JavaScript 文件仍然没有任何意义。

或者,如果我设置 BundleTable.EnableOptimizations = true;,那么为什么我根本不需要缩小 JavaScript 文件,它们都会缩小,不是吗?

我是不是漏掉了什么?非常感谢。

这个 Microsoft Blog 可以解释你的很多问题,但总而言之,当你使用捆绑时 asp.net 很聪明,如果你处于调试模式,它只会包含完整的 .js 文件,所以如果你必须对其进行任何调试,你可以看到正常的代码并阅读它。如果您处于发布模式 (BundleTable.EnableOptimizations = true;,),则它仅包含 .min.js 文件,以提供更小的流线型副本。其他文件(智能、地图等)只是为了帮助开发人员更轻松地编写代码。

至于为什么需要.min.js文件是为了节省服务器资源。 ASP.Net 会自动为您进行缩小,但这会消耗资源,而且它是适度的缩小。如果您想保存这些资源或进行大幅缩小,您可以制作自己的 .min.js 文件,但您不必强制包含一个文件。