Запуск приложения ASP.NET MVC 4 в режиме выпуска не связывает и не изменяет js файлы

Когда я запускаю приложение ASP.NET MVC 4 в режиме выпуска, пакеты все равно выводят unminified и отдельные файлы js, вместо того, чтобы связывать и минимизировать его на меньшее количество связанных файлов JavaScript.

Любые идеи?

FYI, релиз 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

Благодаря комментарию aleyush, что Web.release.config используется только при публикации приложения, а не при его локальном использовании, я смог исправить его, добавив следующие строки в файл BundleConfig.cs:

#if !DEBUG
BundleTable.EnableOptimizations = true;
#endif

Так как режим Debug будет определять константу DEBUG, а в режиме деблокирования она не определена, эта строка будет выполняться только в режиме деблокирования. (вы можете проверить его, установив точку останова)

Ответ 2

  • Ничего не связывается или не минимизируется, если для файла debug установлено значение true в файле Web.config, чтобы вы могли легко отлаживать вывод.

  • Если вы хотите переопределить это, просто добавьте следующую строку кода в файл BundleConfig:

    BundleTable.EnableOptimizations = true;

Ответ 3

Это сработало для меня

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

Ответ 4

Мой пакет был слишком большой. Я должен был разбить его на более мелкие части, и он работал нормально. Может быть, какая-то переменная столкнулась с минимумом.

Поместите эту строку в конец вашего пакета, только для теста...

BundleTable.EnableOptimizations = true;

Если вы откроете миниатюрный файл, вы увидите что-то вроде этого.

    /* 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: ;
.....

Разрушая вас, вы можете изолировать проблему.

Надеюсь, это может помочь кому-то.