Компилятор "Web Compiler" при сохранении не работает
Я использую веб-компилятор, но он не скомпилирует мою структуру SASS, если я не нажму правой кнопкой мыши на "compilerconfig.json" и выберу "Web-компилятор" -> "Перекомпилировать все файлы".
Когда я использую другие методы для запуска компиляции...
- Когда я сохраняю SCSS-файл (самое главное)
- Когда я захожу в меню "Построить" -> "Перекомпилировать все файлы в решении"
- Когда я использую короткую команду Shift + Alt + Y
Он скажет мне "Компилируется успешно" или "Готово компилирование", однако файлы не обновляются.
Я использую Visual Studio 2015 v.3 и веб-компилятор ОБНОВЛЕНО 02.08.2016, ВЕРСИЯ 1.11.319.
Заранее спасибо!
8 ответов
Нашел ответ в форуме. Мне просто нужно было удалить некоторые временные файлы и перезапустить Visual Studio:
%localappdata%\temp\WebCompiler1.xx
Сообщение на форуме: https://github.com/madskristensen/WebCompiler/issues/158
Надеюсь, это поможет кому-то!
При устранении неполадок, связанных с этой проблемой, я обнаружил, что это расширение иногда отключалось автоматически. Я уверен, что это не то, что я сделал, но в Visual Studio может быть механизм, который периодически отключает расширения. Просто еще одна вещь, чтобы проверить.
К сожалению, предложенное здесь решение не сработало. Кажется, я не одинок в этом.
В случае, если это поможет кому-то еще, я нашел другой обходной путь, который, кажется, предлагает дополнительную побочную выгоду.
Если вы добавите представление 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
файлы при компиляции, это огромное преимущество.
Надеюсь это поможет.
После обновления до VS 2017 версии 15.9.5 компиляция с сохранением не работает для меня. Я могу щелкнуть правой кнопкой мыши по файлам scss и скомпилировать, но снова вложенный css не скомпилирован. Кажется, что обновление Visual Studio является проблемой.
В качестве альтернативы вы можете удалить веб-компилятор и использовать compilesass,
Вы можете скачать здесь
Иногда расширение веб-компилятора не завершает извлечение своих файлов node_modules, если вы только что установили его.
Подождите, пока завершится процесс 7z.exe около 10 минут, вы можете подтвердить это через диспетчер задач. Вы заметите, что файлы в %LocalAppData%/Temp/WebCompiler1.xx/node_modules увеличиваются.
Это относится к VS2022, я не знаю для других версий, но это тоже может иметь значение.
У меня был проект, в котором генерация css работала правильно при нажатии «Повторно скомпилировать файлы» из проекта или отдельного файла, но не автоматически при сборке или сохранении .scss.
Чтобы он работал, проект должен ссылаться на следующий пакет nuget :
<ItemGroup>
<PackageReference Include="BuildWebCompiler2022" Version="1.14.4" />
....
<ItemGroup>
Конечно, точная версия может зависеть от того, что будет доступно, когда вы прочтете это сообщение.
Вы также можете добавить его автоматически, щелкнув правой кнопкой мыши файл .scss, щелкнув меню «Веб-компилятор» и нажав «Включить компиляцию при сборке», он добавит отсутствующую ссылку.
Я просто удалил расширение и пакет, удалил все файлы проекта (.config и .scss), полностью закрыл все экземпляры VS 2022. Переустановил все, убедившись, что VS был полностью загружен / выгружен между шагами, добавил файлы обратно и скомпилировал при сохранении. снова работает. Однако после сохранения обновленного файла css я сразу же получил BSOD. Я понимаю, что я получил пару из них после установки этого расширения несколько дней назад.
К вашему сведению ... Я пробовал эту переустановку раньше, и это не сработало. На этот раз я убедился, что VS все было удалено перед переустановкой. Сразу после переустановки расширения и прежде чем делать что-либо еще, я заметил, что есть пункт контекстного меню, щелкнув правой кнопкой мыши наcompileconfig.json> Веб-компилятор, в котором говорилось что-то об удалении из процесса компиляции или что-то в этом роде. Это не было типичным "Включить компиляцию при сборке...". Теперь этого пункта меню больше нет.
Если вы недавно установили новую Visual Studio, обязательно переустановите расширение WebCompiler. Расширения > Управление расширениями