2013-02-11 91 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);