Связки и минимизация ASP.Net MVC
При переходе от разработки к производственной среде я столкнулся с некоторыми проблемами с тем, как мои миниатюрные javascript файлы были уменьшены. Похоже, что некоторые из них не правильно просчитывают, и поэтому я искал способ найти способ не минимизировать конкретный пакет.
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..
Это основной макет в моем классе конфигурации пакета. Я хочу найти способ, чтобы все мои связки были минимизированы, кроме первого. Это возможно? Пока единственное решение, которое я нашел для достижения чего-то подобного, - это отключить минизацию по всему миру.
Ответы
Ответ 1
У вас есть несколько вариантов, вы можете либо заменить использование 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);
Очевидно, первое решение намного красивее:)
Ответ 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);