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="&quot;$(SolutionDir)\packages\dotless.1.3.1.0\tool\dotless.compiler.exe&quot; --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

Добавлю это к моему собственному вопросу, потому что это может помочь другим.

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