Włącz tworzenie pakietów i minifikację w trybie debugowania w ASP.NET MVC 4

112

Nie mogę uwierzyć, że nie mogę znaleźć innych pytań na ten temat, ale: jak można włączyć sprzedaż wiązaną w trybie debugowania? Wiem, jak jest włączony w trybie wydania, ale w trybie debugowania nie mogę znaleźć sposobu, aby włączyć pakietowanie.

Czy to w ogóle możliwe, czy czegoś mi brakuje?

MLowijs
źródło

Odpowiedzi:

214

Możesz to włączyć, dodając

BundleTable.EnableOptimizations = true;

w metodzie RegisterBundles (klasa BundleConfig w folderze App_Start).

sprawdź http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification, aby uzyskać więcej informacji

Możesz także zmienić swój plik web.config:

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

Ale to całkowicie wyłączyłoby tryb debugowania, więc polecam pierwszą opcję.

Wreszcie, aby uzyskać to, co najlepsze z obu światów, użyj dyrektywy kompilatora #if w następujący sposób:

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif
Bart Beyers
źródło
4
Pójdę o krok dalej i dodam niestandardową sekcję konfiguracji do twojego web.config (lub przynajmniej wpis AppSetting). W ten sposób możesz selektywnie włączać / wyłączać optymalizacje bez konieczności przebudowywania.
Joe the Coder,
1
lub użyj instrukcji #if DEBUG& #if !DEBUGprekompilatora
Liam
Pamiętaj również, że zastępuje to debug="true"konfigurację, więc optymalizacje są zawsze włączone lub wyłączone, jeśli na stałe zakodujesz tę wartość
Liam
1
Lub użyj "gadatliwego" MVC jakif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium,
jeśli podoba Ci się opcja konfiguracji internetowej, możesz również skonfigurować wiele konfiguracji internetowych na konfigurację, aby debugowanie konfiguracji internetowej było prawdziwe, a wydanie fałszywe docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/ ...
Matthew Ellison
11

dodać BundleTable.EnableOptimizations = true;w Application_Start()metodzie Global.asaxpliku

Kryzys
źródło
-2

W Global.asax dodaj 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
źródło
-5

Te oficjalne witryny MS stany podczas debugowania to nie jest możliwe, aby ją włączyć. Myślę, że powodem jest to, że łatwiej jest debugować, gdy jest wyłączony. Jeśli chcesz przetestować wpływ na swoją aplikację, musisz ustawić go <compilation debug="true" />w pliku Web.config

@Hebe: Cytując stronę MS

Debugowanie kodu JavaScript jest łatwe w środowisku programistycznym (w którym element kompilacji w pliku Web.config jest ustawiony na debug = „true”), ponieważ pliki JavaScript nie są pakowane ani zmniejszane.

Ennosuke
źródło
W moim przypadku chciałem tylko debugować kod C # zaplecza, a ze względu na sposób skonfigurowania naszej aplikacji potrzebujemy pakietu, aby działał, aby wszystkie arkusze stylów i skrypty ładowały się poprawnie.
MLowijs
3
@Ennosuke - Chociaż debugowanie może być łatwiejsze, czasami pojawiają się błędy JavaScript spowodowane procesem minifikacji, które wymagają lokalnego uruchamiania zminimalizowanych skryptów.
Joe the Coder,