2013-02-11 5 views
13

При переходе от разработки к производственной среде я столкнулся с некоторыми проблемами с тем, как мои миниатюрные javascript-файлы были уменьшены. Похоже, что некоторые из них не правильно просчитывают, и поэтому я искал способ найти способ не минимизировать конкретный пакет.Связки и минимизация 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

У вас есть несколько вариантов, вы можете либо заменить использование ScriptBundle с Bundle как в этом примере:

_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 Извините! Я отредактировал ваш ответ по ошибке вместо моего (я оставил некоторый код по ошибке и нажал «изменить», чтобы изменить его. My bad; ( – amhed

+0

Спасибо. Я пробовал оба этих метода, но он все еще, кажется, уменьшает его, когда построение в режиме освобождения по какой-то причине – Thewads

+1

Rudis soln должен работать. Если вы создадите базовый Bundle без указания какого-либо преобразования, он просто свяжет файлы как есть, поэтому это определенно не должно минимизировать ваш пакет. –

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); 
Смежные вопросы