ASP.NET MVC捆绑 - 仅在调试模式下包含脚本

时间:2013-07-29 17:15:26

标签: asp.net asp.net-mvc-4 bundle

是否可以根据应用程序的调试设置在捆绑包中添加或删除脚本?

即。给出了 -

的包定义
var jQueryBundle = new ScriptBundle("~/js/main").Include(
    "~/Scripts/jquery-1.{version}.js",
    "~/Scripts/jquery-migrate-{version}.js",
    "~/Scripts/script.js");

当站点在调试配置文件中运行时删除jquery-migrate引用,或者相反在调试时添加它。

Nb。我实际上在制定问题的同时想出了解决方案,我已经测试了它,它似乎有效。我已经回答了这个问题,但如果有更好的解决方案,我现在就不会接受它。同时,如果有人想要使用它,答案至少现在可供参考。

1 个答案:

答案 0 :(得分:4)

我实际上在写出问题时想出了答案。由于我无法通过搜索找到答案,所以无论如何都决定发布问题并回答它 - 所以它都可以作为参考,以便其他任何想要做同样事情的人,以及获得比我更聪明的头脑的反馈。如果这是实现这一目标的最佳方式 - 甚至是一件明智的事情。

var jQueryBundle = new ScriptBundle("~/js/main").Include(
    "~/Scripts/jquery-1.{version}.js",
    "~/Scripts/script.js");

if (HttpContext.Current.IsDebuggingEnabled)
{
    jQueryBundle.Include("~/Scripts/jquery-migrate-{version}.js");
}

bundles.Add(jQueryBundle);

我已对此进行了测试,同时列出了调试脚本(我在调试模式下保留了捆绑和缩小的默认值),并且在正常运行时,迁移脚本的内容不在合并的缩小脚本中。在接下来的几天里,我将对此进行分析,以便与“vanilla”捆绑进行比较,以了解它对应用程序启动的性能影响(如果有)。