Turn off bundling/minification while debugging in WebForms
Asked Answered
D

2

8

I want to be able to minify/bundle my javascript files in a production environment while having them unminified/unbundled when debugging locally; however, the default WebForms site in VS2012 does not appear to allow for it.

Steps to reproduce my issue:

  1. Create a new "ASP.NET Web Forms Application" (c# in my case)
  2. Start without debugging and view resources in browser
  3. Notice unminified jquery/modernizr files but bundled/minified MsAjaxJS and WebFormsJs

web.config, by default has:

<compilation debug="true" targetFramework="4.5">

And I've even tried modifying the Global.asax by explicitly telling BundleTable not to optimize:

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    BundleTable.EnableOptimizations = false;
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    AuthConfig.RegisterOpenAuth();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
}

Yet, I still get undebuggable javascript files:

Chrome Dev tools (showing minified/bundled files)

This site (which I realize is for MVC) tells me that either debug="true" in the web.config or BundleTable.EnableOptimizations = false; in Global.asax should turn off the functionality. And this site, (which is for WebForms and is linked from the first), doesn't mention turning it off for debugging.

How might I (cleanly) tell my project to only minify/bundle when debug="false"?

(I'm using ASP.NET 4.5)

EDIT:
This question and this question are similar, but they both only offer a solution using Scripts.Render(). Is there a way to accomplish this with the templated method of using the ScriptManager?

Daggerboard answered 3/4, 2014 at 20:35 Comment(4)
Have you found an answer to this? I am facing the same problemStraightjacket
Did you ever resolve this with a ScriptManager?Interviewer
See my answer below.Stern
Can you mark my answer below as 'Answer'? I'd appreciate it greatly. :)Stern
S
7

Add the following code to your Global.asax.cs file in the Application_Start method. This works perfectly for me.

#if DEBUG
       foreach (var bundle in BundleTable.Bundles)
       {
           bundle.Transforms.Clear();
       }
#endif
Stern answered 26/12, 2014 at 4:24 Comment(0)
W
1

I had a similar issue before. I solved my problem by putting this code

BundleTable.EnableOptimizations = false;

after

BundleConfig.RegisterBundles(BundleTable.Bundles);
Weston answered 31/3, 2017 at 18:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.