Компилировать файлы CSS/JS при сохранении с помощью Bundler и Minifier

Недавно я перешел с Visual Studio 2013 на Visual Studio 2015 для разработки своего веб-приложения в MVC. Мы используем файлы LESS и JS для компиляции в минимизированные версии обоих этих типов файлов.

Теперь в VS2013 появилась функция, позволяющая в файле LESS автоматически компилироваться в файл.CSS при любых изменениях в файлах.LESS. То же самое происходило в файлах JS с обновлением файла.min.js при любых изменениях в JS. файлы.

Итак, теперь для VS2015 я знаю, что есть новые независимые расширения для этого, а именно "Web Compiler" и "Bundler and Minifier", для которых я также провел всестороннее исследование, но я все еще не могу использовать их для обновления минимизированного версии, если файлы.LESS или.JS изменены соответственно.

Я знаю, что для VS2015 доступны эти Runner'ы задач, называемые Grunt и Gulp, но мне нужно знать, как мне добиться этой компиляции при сохранении с помощью этих инструментов.

1 ответ

Ответ 1 Это часто можно исправить, удалив %localappdata%\temp\WebCompiler??? папка.

Иногда вам нужно перезагрузить VS, иногда нет.

Не работает для всех, но, кажется, работает для многих людей.

Ответ 2 Для тех, кто заинтересован, я нашел другой ответ на этот вопрос, который, кажется, предлагает дополнительную побочную выгоду.

Если вы добавите представление Razor в свой проект (я назвал его JsHelper.cshtml и добавил его в \Views\Shared) и используйте следующее для содержимого (добавлены дополнительные разрывы строк, чтобы он соответствовал ширине SO)...

@model string
@{
  string ext = HttpContext.Current != null
               && HttpContext.Current.Request.Url.Host.Contains("localhost")
    ? ""
    : ".es5.min";
}
<script src="/Scripts/@Model@(ext).js" type="text/javascript"></script>

... тогда вместо добавления тегов сценария, как это...

<script src="/Scripts/General.es5.min.js" type="text/javascript"></script>

... вы можете добавить это...

@Html.Partial("~/Views/Shared/JsHelper.cshtml", "General")

Когда вы запускаете веб-сайт в Visual Studio, будет использоваться некомпилированная версия файла Javascript. При запуске в другом месте (например, на производственном сервере), .es5.min.js версия будет использоваться.

Поскольку публикация веб-проекта подразумевает его сборку, которая скомпилирует файлы.js, вы можете быть уверены, что опубликованные скомпилированные и свернутые файлы являются актуальными.

Это имеет то преимущество, что при отладке ваших скриптов в браузере у вас есть доступ к полной версии .js файл, вместо скомпилированной и свернутой версии, которую вы получите, если будете ссылаться на них напрямую. Еще одно серьезное изменение, произошедшее в последней версии Web Compiler, заключается в том, что они больше не производят .map.js файлы при компиляции, это огромное преимущество.

Надеюсь это поможет.

Другие вопросы по тегам