Aktifkan bundling dan minifikasi dalam mode debug di ASP.NET MVC 4

112

Saya tidak percaya saya tidak dapat menemukan pertanyaan lain tentang ini, tetapi: bagaimana cara mengaktifkan bundling dalam mode debug? Saya tahu bagaimana ini diaktifkan untuk mode rilis, tetapi dalam mode debug saya tidak dapat menemukan cara untuk mengaktifkan bundling.

Apakah ini mungkin atau apakah saya melewatkan sesuatu?

MLowijs
sumber

Jawaban:

214

Anda dapat mengaktifkan ini dengan menambahkan

BundleTable.EnableOptimizations = true;

dalam metode RegisterBundles Anda (kelas BundleConfig di folder App_Start).

periksa http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification untuk info lebih lanjut

Anda juga bisa mengubah web.config Anda:

<system.web>
    <compilation debug="false" />
</system.web>

Tetapi ini akan menonaktifkan mode debug sepenuhnya jadi saya akan merekomendasikan opsi pertama.

Terakhir, untuk mendapatkan yang terbaik dari kedua dunia, gunakan arahan kompilator #if seperti ini:

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif
Bart Beyers
sumber
4
Saya akan mengambil langkah lebih jauh, dan menambahkan bagian konfigurasi khusus ke web.config Anda (atau minimal, entri AppSetting.) Dengan begitu, Anda dapat mengaktifkan / menonaktifkan pengoptimalan secara selektif tanpa harus membangun kembali.
Joe the Coder
1
atau gunakan #if DEBUG& #if !DEBUGpernyataan precompiler
Liam
Ingatlah juga bahwa ini menimpa debug="true"konfigurasi, jadi pengoptimalan selalu diaktifkan atau dinonaktifkan jika Anda melakukan hardcode nilai ini
Liam
1
Atau gunakan MVC "verbose" sepertiif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium
jika Anda menyukai opsi konfigurasi web, Anda juga dapat mengatur beberapa konfigurasi web per konfigurasi sehingga konfigurasi web debug akan menjadi benar dan rilis akan menjadi salah docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison
11

menambahkan BundleTable.EnableOptimizations = true;dalam Application_Start()metode Global.asaxberkas

Cris
sumber
-2

Di Global.asax tambahkan BundleConfig.RegisterBundles(BundleTable.Bundles);

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles); // add this
        }
Eyal
sumber
-5

Situs MS resmi menyatakan saat Debugging tidak memungkinkan untuk mengaktifkannya. Saya pikir alasannya adalah, lebih mudah untuk men-debug saat dinonaktifkan. Jika Anda ingin menguji Impact pada aplikasi Anda, Anda harus mengaturnya <compilation debug="true" />di Web.config

@Hebe: Mengutip halaman MS

Sangat mudah untuk men-debug JavaScript Anda dalam lingkungan pengembangan (di mana Elemen kompilasi dalam file Web.config disetel ke debug = "true") karena file JavaScript tidak dipaketkan atau dikecilkan.

Ennosuke
sumber
Dalam kasus saya, saya hanya ingin men-debug kode C # backend, dan karena cara aplikasi kami disiapkan, kami memerlukan bundling untuk bekerja agar semua stylesheet dan skrip dimuat dengan benar.
MLowijs
3
@Ennosuke - Meskipun mungkin lebih mudah untuk melakukan debug, terkadang ada bug Javascript yang disebabkan oleh proses minifikasi yang mengharuskan Anda untuk dapat menjalankan skrip yang diperkecil secara lokal.
Joe the Coder