2013-02-11 92 views
13

当从开发转移到生产环境时,我遇到了一些问题,其中我的javascript文件被缩小了。看起来有些人没有正确min,,所以我一直在四处寻找一种不缩小特定包的方法。ASP.Net MVC捆绑和缩小

public static void RegisterBundles(BundleCollection _bundles) 
    { 
     _bundles.Add(new ScriptBundle("~/bundles/toNotMinify").Include(
      "~/Scripts/xxxxxx.js" 
      )); 

     _bundles.Add(new ScriptBundle("~/bundles/toMinify").Include(
      "~/Scripts/yyyyy.js" 
      )); 
     etc.. 

这是我的包配置类中的基本布局。我想找到一种方法,除了第一个之外,我的所有捆绑包都被缩小了。这可能吗?到目前为止,我发现实现类似的唯一解决方案是关闭全局缩小。

回答

12

你有几个选项,您可以取代你与BundleScriptBundle使用如本例:

_bundles.Add(new Bundle("~/bundles/toNotMinify").Include(
    "~/Scripts/xxxxxx.js" 
)); 

..或者你可以禁用在新创建的束所有转换,就像这样:

var noMinify = new ScriptBundle("~/bundles/toNotMinify").Include(
    "~/Scripts/xxxxxx.js" 
); 
noMinify.Transforms.Clear(); 
_bundles.Add(noMinify); 

显然,第一种方法是漂亮多了:)

+0

Rudy对不起!我错误地编辑了你的回复而不是我的(我遗漏了一些代码,并按下了“编辑”来改变它。我的坏;( – amhed 2013-02-11 16:27:43

+0

谢谢。我已经尝试了这两种方法,但它仍然似乎缩小了它时 – Thewads 2013-02-12 08:28:35

+1

Rudis soln应该可以工作如果你在没有指定任何转换的情况下构造一个基本的Bundle,它将简单地捆绑这些文件,所以这绝对不应该缩小你的捆绑包文件'x.js' – 2013-02-20 11:15:01

2

你只需要声明一个通用的Bundle对象和指定您需要的变换:

var dontMinify = new Bundle("~/bundles/toNotMinify").Include(
             "~/Scripts/xxxxx.js"); 
      bundles.Add(dontMinify); 

      var minify = new Bundle("~/bundles/toNotMinify").Include(
       "~/Scripts/yyyyyy.js"); 
      minify.Transforms.Add(new JsMinify()); 
      bundles.Add(minify);