Visual studio - прекомпиляция - без точек
Интересно, есть ли способ прекомпиляции *.less
файлы ( http://www.dotlesscss.org/) с визуальной студией.
Сайт дает мне dotless.compiler.exe
но я не уверен, как подключить это к визуальной студии. Я ищу решение для веб-форм и ASP.NET MVC.
7 ответов
В зависимости от вашей среды сборки, вы можете начать 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
файлы в вашей разметке.
Все,
После использования практически всех обсуждаемых здесь альтернатив и неудовлетворенности я написал дополнение компилятора LessCss для Visual Studio. Он принимает файлы.less и создает файлы.css только при изменении файла.less. Он использует самый последний и лучший компилятор less.js.
Смотрите это в использовании здесь.
Загрузите подписанное расширение.
Я только что представил его в галерее расширений VS. Надеюсь, он скоро появится, но пока установите (или откомпилируйте, а затем установите) и проверьте его.
Фил Хаак на помощь: http://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx
Всякий раз, когда вы хотите, чтобы что-то было сгенерировано в вашем решении во время компиляции, T4 - это обычно путь...
Вот решение, которое я придумал, используя MSBuild. Это постепенно, поэтому это должно происходить только когда Меняется. Это также правильно обрабатывает @import
,
Во-первых, добавьте без точек в ваш проект с NuGet. Вам не нужно никакого волшебства, которое оно добавляет к вашему web.config
, так что вы можете отменить это - вы просто используете его, чтобы получить исполняемый файл компилятора.
Затем добавьте свой "корень" меньше файлов к вашему .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>
Существует также другой способ прекомпиляции во время разработки.
В проекте dotless имеется компилятор командной строки (dotless.Compiler.exe), который может компилировать и минимизировать CSS.
Вы также можете использовать файл compiler.exe с параметром --watch, чтобы он продолжал работать и проверял ваш входной файл на предмет изменений, восстанавливая каждый раз, когда вы вносите изменения в файл. Это делает вас независимым от Visual Studio.
Вы можете взглянуть на Chirpy. У него гораздо больше поддержки, чем просто МЕНЬШЕ. Я хотел бы найти его до написания своего.
Говоря об этом, я также написал инструмент для пользовательской сборки Visual Studio, который выполняется с использованием файла JS (вместо порта.NET), вы можете взглянуть на источник здесь: https://github.com/paultyng/JsBuildTools
Или это также в галерее расширений под JsBuildTools.
В моих поисках работы с DotLess я также нашел эту библиотеку:
http://www.codethinked.com/post/2010/03/17/Bundler-Now-Supports-Css-And-less.aspx
Добавлю это к моему собственному вопросу, потому что это может помочь другим.