Running an ASP.NET MVC 4 app in release mode does not bundle and minifiy the js files

霸气de小男生 提交于 2019-12-09 02:22:08

问题


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 fewer bundled JavaScript files.

Any ideas?

FYI, release config:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>

回答1:


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)




回答2:


  1. Nothing is being bundled or minified if debug is set to true in Web.config file so that you can easily debug the output.

  2. If you want to override this, just add the following line of code to your BundleConfig file:

    BundleTable.EnableOptimizations = true;




回答3:


This worked for me

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



回答4:


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.



来源:https://stackoverflow.com/questions/15155344/running-an-asp-net-mvc-4-app-in-release-mode-does-not-bundle-and-minifiy-the-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!