Визуальная студия - прекомпиляция - без ограничений
Интересно, есть ли способ прекомпилировать файлы *.less
(http://www.dotlesscss.org/) с визуальной студией.
Сайт дает мне dotless.compiler.exe
, но я не уверен, как подключить его к визуальной студии. Я ищу решение как для Webforms, так и для ASP.NET MVC.
Ответы
Ответ 1
В зависимости от вашей среды сборки вы можете запустить dotless.Compiler.exe
в качестве задачи сборки.
Например, используя задачу Pre-Build в Visual Studio (все 1 строка):
$(SolutionDir)Tools\dotLess\dotless.compiler.exe -m
$(ProjectDir)content\css\site.less $(ProjectDir)content\css\site.css
Макросы ($(SolutionDir)
и т.д.) позволяют немного гибко проектировать и размещать файлы. Вместо использования стандартных файлов .less
просто ссылайтесь на новые файлы .css
в вашей разметке.
Ответ 2
Все,
После использования почти всех альтернатив, обсуждаемых здесь и не удовлетворяющих, я написал добавление компилятора LessCss для Visual Studio. Он принимает файлы .less и генерирует файлы .css только при изменении файла .less. Он использует последний и самый большой компилятор less.js.
Смотрите здесь, чтобы использовать здесь.
Загрузите подписанное расширение.
Исходный код здесь.
Я только что отправил его в галерею расширения VS. Надеюсь, он скоро появится, но в то же время, пожалуйста, установите (или скомпилируйте, затем установите) и проверьте его.
Ответ 3
Фил Хаак на помощь: http://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx
Всякий раз, когда вы хотите получить что-то, сгенерированное в вашем решении во время компиляции, T4 обычно подходит...
Ответ 4
Вот решение, с которым я столкнулся, используя MSBuild. Он поэтапный, поэтому это должно произойти только тогда, когда изменяется Less. Он также правильно обрабатывает @import
.
Во-первых, добавьте в проект NutGet без ограничений. Вам не нужно какое-либо волшебство, которое он добавляет к вашему web.config
, поэтому вы можете его вернуть - вы просто используете его для получения исполняемого файла компилятора.
Затем добавьте "root" Меньше файлов к вашему .csproj
, например:
<ItemGroup>
<LessCssRootInput Include="example.less" />
</ItemGroup>
Наконец, добавьте этот фрагмент в нижней части вашего .csproj
:
<ItemGroup>
<LessCssSubInput Include="**\*.less" Exclude="@(LessCssRootInput)" />
<LessCssOutput Include="@(LessCssRootInput -> '%(RelativeDir)\%(Filename).css')" />
</ItemGroup>
<Target Name="CompileLessCss" BeforeTargets="Compile" Inputs="@(LessCssRootInput);@(LessCssSubInput)" Outputs="@(LessCssOutput)">
<Exec Command=""$(SolutionDir)\packages\dotless.1.3.1.0\tool\dotless.compiler.exe" --minify --keep-first-comment @(LessCssRootInput)" />
</Target>
Ответ 5
Существует также другой способ прекомпиляции во время разработки.
В бесчисленном проекте представлен компилятор командной строки (dotless.Compiler.exe), который может скомпилировать и минимизировать CSS.
Вы также можете использовать compiler.exe с параметром --watch, где он будет продолжать работать и сканировать ваш входной файл для изменений, регенерируя всякий раз, когда вы вносите изменения в файл. Таким образом, вы будете независимы от Visual Studio.
Ответ 6
В моем поиске работы с DotLess я также нашел эту библиотеку:
http://www.codethinked.com/post/2010/03/17/Bundler-Now-Supports-Css-And-less.aspx
Добавление его в мой собственный вопрос, потому что это может помочь другим.
Ответ 7
Вы можете посмотреть Chirpy. Он имеет гораздо большую поддержку, чем просто МЕНЬШЕ. Хотелось бы, чтобы я нашел его, прежде чем писать свои собственные.
Говоря о том, что я также написал Visual Studio Custom Build Tool, который выполняется с использованием JS файла (вместо порта .NET), вы можете посмотреть источник здесь: https://github.com/paultyng/JsBuildTools
Или он также находится в галерее расширений под JsBuildTools.