Activer le regroupement et la minification en mode débogage dans ASP.NET MVC 4


112

Je ne peux pas croire que je ne trouve pas d'autres questions à ce sujet, mais: comment activer le regroupement en mode débogage? Je sais comment il est activé pour le mode de libération, mais en mode de débogage, je ne peux pas trouver un moyen d'activer le regroupement.

Est-ce même possible ou est-ce que je manque quelque chose?

Réponses:


214

Vous pouvez l'activer en ajoutant

BundleTable.EnableOptimizations = true;

dans votre méthode RegisterBundles (classe BundleConfig dans le dossier App_Start).

consultez http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification pour plus d'informations

Vous pouvez également modifier votre web.config:

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

Mais cela désactiverait complètement le mode de débogage, je recommanderais donc la première option.

Enfin, pour obtenir le meilleur des deux mondes, utilisez la directive du compilateur #if comme ceci:

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif

4
Je voudrais aller plus loin et ajouter une section de configuration personnalisée à votre web.config (ou au minimum, une entrée AppSetting.) De cette façon, vous pouvez activer / désactiver sélectivement les optimisations sans avoir à faire une reconstruction.
Joe the Coder

1
ou utiliser des déclarations #if DEBUG& #if !DEBUGprécompilateurs
Liam

Gardez également à l'esprit que cela remplace la debug="true"configuration, donc les optimisations sont toujours activées ou désactivées si vous codez cette valeur en dur
Liam

1
Ou utilisez MVC "verbeux" commeif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium

si vous aimez l'option de configuration Web, vous pouvez également configurer plusieurs configurations Web par configuration afin de déboguer la configuration Web serait vraie et la version serait fausse docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison

11

ajouter BundleTable.EnableOptimizations = true;dans la Application_Start()méthode de Global.asaxfichier


-2

Dans Global.asax, ajoutez 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

Le site officiel MS indique lors du débogage qu'il n'est pas possible de l'activer. Je pense que la raison en est qu'il est plus facile de déboguer lorsqu'il est désactivé. Si vous souhaitez tester l'impact sur votre application, vous devez définir <compilation debug="true" />dans le Web.config

@Hebe: Pour citer la page MS

Il est facile de déboguer votre JavaScript dans un environnement de développement (où l'élément de compilation dans le fichier Web.config est défini sur debug = "true") car les fichiers JavaScript ne sont pas regroupés ou réduits.


Dans mon cas, je voulais simplement déboguer le code C # backend, et en raison de la façon dont notre application est configurée, nous avons besoin d'un regroupement pour que toutes les feuilles de style et tous les scripts se chargent correctement.
MLowijs

3
@Ennosuke - Bien qu'il puisse être plus facile de déboguer, il y a parfois des bogues Javascript causés par le processus de minification qui vous obligent à pouvoir exécuter les scripts minifiés localement.
Joe the Coder
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.