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?

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

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


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

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


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.