2013-02-11 23 views
13

Quando si passa dallo sviluppo a un ambiente di produzione, ho riscontrato alcuni problemi con il modo in cui i miei file javascript vengono ridotti. Sembra che alcuni non minify correttamente, e quindi mi sono guardato intorno per trovare un modo per non minimizzare un bundle specifico.Bundle e minial 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.. 

Questo è il layout di base nella classe di configurazione del pacchetto. Voglio trovare un modo per avere tutti i miei pacchetti ridotti, a parte il primo. È possibile? Finora l'unica soluzione che ho trovato per ottenere qualcosa di simile è disattivare la minificazione a livello globale.

risposta

12

Hai un paio di opzioni, è possibile sostituire l'utilizzo del ScriptBundle con Bundle come in questo esempio:

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

.. o si potrebbe disattivare tutte le trasformazioni su un fascio di recente creazione, in questo modo:

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

Ovviamente la prima soluzione è molto più bella :)

+0

Rudy Siamo spiacenti! Ho modificato la tua risposta per errore invece della mia (ho lasciato un codice fuori per errore e premuto su "modifica" per cambiarlo.) Il mio male; ( – amhed

+0

Grazie. Ho provato entrambi questi metodi, ma sembra comunque ridurlo quando costruire in modalità di rilascio per qualche motivo – Thewads

+1

Rudis soln dovrebbe funzionare.Se si costruisce un bundle base senza specificare alcuna trasformazione, sarà semplicemente raggruppare i file così come sono, quindi questo sicuramente non dovrebbe minimizzare il pacchetto. –

2

Non vi resta che dichiarare un oggetto generico e Bundle specificare le trasformazioni necessarie:

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