When I run my ASP.NET MVC 4 app in release mode, the bundles are still outputting the unminified and separate js files, instead of bundling and minifying it into fe
Thanks to aleyush's comment that Web.release.config
is only used during publishing the app, and not when running it locally, I was able to fix it by adding the following lines to the BundleConfig.cs
file:
#if !DEBUG
BundleTable.EnableOptimizations = true;
#endif
Since Debug mode will define the DEBUG
constant, and during Release mode it is not defined, this line will only execute during Release mode. (you can test it by setting a breakpoint)
My bundle was too big. I had to break it down into smaller parts and it worked fine. Maybe some variable conflicted after minification.
Put this line at end of your bundleconfig only for test...
BundleTable.EnableOptimizations = true;
If you open the minified file, you will see something like this.
/* Minification failed. Returning unminified contents.
(5079,1-2): run-time warning JS1195: Expected expression: .
(5080,18-19): run-time warning JS1004: Expected ';': :
(5084,18-19): run-time warning JS1004: Expected ';': :
(5091,18-19): run-time warning JS1004: Expected ';': :
(5095,20-21): run-time warning JS1197: Too many errors. The file might not be a JavaScript file: ;
.....
Breaking down you bundle, you can isolate the issue.
Hope this may help someone.
This worked for me
<system.web>
<compilation debug="false" />
</system.web>
Nothing is being bundled or minified if debug is set to true in Web.config file so that you can easily debug the output.
If you want to override this, just add the following line of code to your BundleConfig file:
BundleTable.EnableOptimizations = true;