2013-02-11 28 views
13

Geliştirme işleminden bir üretim ortamına taşınırken, javascript dosyalarının küçültülmesiyle ilgili bazı sorunlara rastladım. Bazılarının düzgün küçültmediği görülüyor ve bu yüzden belirli bir paketi küçültmenin bir yolunu bulmak için etrafa bakıyorum.ASP.Net MVC Paketleri ve Minification

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.. 

Bu, bundle config sınıfımdaki temel düzendir. Birinciden ayrı olarak bütün demetleri minimize etmenin bir yolunu bulmak istiyorum. Mümkün mü? Şimdiye kadar benzer bir şeyi başarmak için bulduğum tek çözüm, küreselleşmeyi minimize etmektir.

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

.. yoksa aynen böyle yeni oluşturulan paket üzerindeki tüm dönüşümler devre dışı olabilir:

cevap

12

Sen birkaç seçenek var, bu örnekte olduğu gibi Bundle ile ScriptBundle kullanımınızı yerini alacak şekilde kullanılabilir:

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

Açıkçası ilk çözüm daha güzel :)

+0

Rudy Üzgünüm! Cevabınızı benimki yerine yanlışlıkla düzenledim (bazı kodları yanlışlıkla bıraktım ve değiştirmek için "düzenle" ye bastım. Benim hatam. ( – amhed

+0

Teşekkürler. Her iki yöntemi de denedim, ancak yine de Herhangi bir nedenle – Thewads

+1

Rudis soln çalışması için serbest bırakma modunda çalışabilir. Eğer herhangi bir dönüşüm belirtmeden basit bir Bundle kurarsanız, dosyaları olduğu gibi paketleyecektir, bu yüzden kesinlikle paketinizi küçültmemelisiniz. 'x.js' dosyası için –

2

sadece genel Paketi nesne bildirmeniz gerekmektedir ve bir İhtiyacınız olan dönüştürmeleri belirtin:

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);