Компилировать файлы 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
файлы при компиляции, это огромное преимущество.
Надеюсь это поможет.