Habilite agrupamento e minificação no modo de depuração na ASP.NET MVC 4


112

Não acredito que não consigo encontrar outras perguntas sobre isso, mas: como habilitar o empacotamento no modo de depuração? Eu sei como ele é habilitado para o modo de liberação, mas no modo de depuração não consigo encontrar uma maneira de habilitar o agrupamento.

Isso é mesmo possível ou estou faltando alguma coisa?

Respostas:


214

Você pode habilitar isso adicionando

BundleTable.EnableOptimizations = true;

em seu método RegisterBundles (classe BundleConfig na pasta App_Start).

verifique http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification para obter mais informações

Você também pode alterar seu web.config:

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

Mas isso desabilitaria totalmente o modo de depuração, portanto, recomendo a primeira opção.

Finalmente, para obter o melhor dos dois mundos, use a diretiva do compilador #if como esta:

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

4
Eu levaria isso um passo adiante e adicionaria uma seção de configuração personalizada ao seu web.config (ou, no mínimo, uma entrada AppSetting). Dessa forma, você pode ativar / desativar seletivamente as otimizações sem ter que fazer uma reconstrução.
Joe the Coder

1
ou use as instruções do #if DEBUG& #if !DEBUGpré - compilador
Liam

Também tenha em mente que isso substitui a debug="true"configuração, portanto, as otimizações estão sempre ativadas ou desativadas se você codificar este valor
Liam

1
Ou use MVC "detalhado", comoif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium

se gostar da opção de configuração da web, você também pode definir várias configurações da web por configuração, de forma que a depuração da configuração da web seja verdadeira e a liberação seja falsa docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison

11

adicionar BundleTable.EnableOptimizations = true;no Application_Start()método de Global.asaxarquivo


-2

Em Global.asax, adicione 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

O site oficial do MS afirma que durante a depuração não é possível habilitá-lo. Acho que a razão é que é mais fácil depurar enquanto está desabilitado. Se você deseja testar o impacto em seu aplicativo, você deve definir <compilation debug="true" />no Web.config

@Hebe: Para citar a página MS

É fácil depurar seu JavaScript em um ambiente de desenvolvimento (onde o elemento de compilação no arquivo Web.config é definido como debug = "true") porque os arquivos JavaScript não são agrupados ou minimizados.


No meu caso, eu apenas queria depurar o código C # de back-end e, devido à forma como nosso aplicativo está configurado, precisamos agrupar para funcionar para que todas as folhas de estilo e scripts sejam carregados corretamente.
MLowijs de

3
@Ennosuke - Embora possa ser mais fácil depurar, às vezes há bugs de Javascript causados ​​pelo processo de minificação que exigem que você seja capaz de executar os scripts minificados localmente.
Joe the Coder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.