Desidero qualche consiglio esperto su Bundle e Minification ASP.NET MVC. Ho nei miei file di script del progetto che hanno entrambe le versioni non terminate (.js) e minified (.min.js). Li ho incluso nel mio pacchetto script come segue:Bundle e minifoto ASP.NET - Compresi file già miniati per bundle di produzione e file non terminati per lo sviluppo
bundles.Add(new ScriptBundle("~/bundles/layout").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/lib/errorhandling.js",
"~/Scripts/lib/errorhandling.min.js",
"~/Scripts/vendor/modernizr.custom.js",
"~/Scripts/vendor/modernizr.custom.min.js",
"~/Scripts/toastr.js",
"~/Scripts/toastr.min.js"));
Sembra che il bundle contiene infatti solo una volta ogni file di script, non due volte. L'ho confermato sia per lo sviluppo che per la produzione. (Come nota a margine, in fase di sviluppo, cioè, quando debug = true, i bundle non sono renderizzati ma i file sono inclusi come tag script separati.Questo è il comportamento desiderato anche per me.)
Le mie domande sono:
(1) È questo il modo migliore e consigliato per includere file già minificati per l'installazione di produzione e per i file non modificati per lo sviluppo?
(2) ASP.NET tenta di ridurre l'intero pacchetto in produzione (anche se è già stato ridotto)? In caso affermativo, qual è il modo migliore per impedire a ASP.NET di tentare di minimizzare il pacchetto?
Grazie in anticipo!
Interessante, ho imparato qualcosa io stesso, non ho capito che il framework avrebbe selezionato il versione .min automaticamente. Suppongo che dovrei passare un po 'di tempo nei documenti da solo. Ho sempre preso il bundling al valore nominale. – codenheim
I file con estensione hanno spesso commenti di mappe di origine come questo: /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license // @ sourceMappingURL = jquery-1.10.2.min.map */ Se utilizzo Bundle, rimarranno nel gruppo. È un problema? Se utilizzo ScriptBundle, ASP.NET li rimuoverà. Devo mantenere questi commenti nel pacchetto o dovrebbero essere rimossi? –
In tal caso, usare Bundle() invece di ScriptBundle() sulle versioni già miniate è il modo per aggirarlo. Almeno questo è un modo. – codenheim