26

我想知道是否有办法用 Visual Studio预编译*.less文件(http://www.dotlesscss.org/ )。

该网站给了我一个dotless.compiler.exe,但我不知道如何将它连接到视觉工作室。我正在为 Webforms 和 ASP.NET MVC 寻找解决方案。

4

7 回答 7

20

根据您的构建环境,您可以dotless.Compiler.exe作为构建任务启动。

例如,在 Visual Studio 中使用 Pre-Build 任务(全 1 行):

$(SolutionDir)Tools\dotLess\dotless.compiler.exe -m 
    $(ProjectDir)content\css\site.less $(ProjectDir)content\css\site.css

宏($(SolutionDir)等)允许在项目和文件位置方面具有一定的灵活性。无需使用标准.less文件,只需在标记中引用新.css文件即可。

于 2010-02-02T02:31:41.327 回答
7

全部,

在使用了这里讨论的几乎所有替代方案并且不满意之后,我为 Visual Studio 编写了一个 LessCss 编译器插件。它仅在 .less 文件更改时才需要 .less 文件并生成 .css 文件。它使用最新最好的less.js 编译器。

在此处查看它的使用情况

下载签名的扩展。

源代码在这里。

我刚刚将它提交到 VS 扩展库。希望它很快就会出现,但同时请安装(或编译然后安装)并检查它。

于 2011-08-28T23:01:29.060 回答
3

菲尔·哈克来救援:http ://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx

每当您想在编译时在您的解决方案中生成某些东西时,T4 通常是要走的路...

于 2010-02-01T12:50:11.637 回答
3

Here's the solution I came up with, using MSBuild. It's incremental, so it should only happen when the Less changes. It also correctly handles @import.

First, add dotless to your project with NuGet. You don't need any of the magic it adds to your web.config, so you can revert that - you're just using it to get the compiler executable.

Next, add your "root" Less files to your .csproj, like so:

<ItemGroup>
    <LessCssRootInput Include="example.less" />
</ItemGroup>

Finally, add this snippet at the bottom of your .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>
于 2012-11-28T14:28:17.900 回答
2

在搜索使用 DotLess 时,我还发现了这个库:

http://www.codethinked.com/post/2010/03/17/Bundler-Now-Supports-Css-And-less.aspx

将其添加到我自己的问题中,因为它可能对其他人有所帮助。

于 2010-04-15T10:02:41.100 回答
2

您可能想看看Chirpy。它有更多的支持,而不仅仅是 LESS。我希望我能在自己写之前找到它。

说到这一点,我还编写了一个使用 JS 文件(而不是 .NET 端口)执行的 Visual Studio 自定义构建工具,您可以在此处查看源代码:https ://github.com/paultyng/JsBuildTools

或者它也在JsBuildTools下的扩展库中。

于 2012-02-06T05:01:52.320 回答
2

还有另一种在开发过程中预编译的方法。

dotless 项目具有一个命令行编译器 (dotless.Compiler.exe),可以编译和缩小 CSS。

您还可以将 compiler.exe 与 --watch 参数一起使用,它将继续运行并扫描您的输入文件以查找更改,并在您对文件进行更改时重新生成。从而使您独立于 Visual Studio。

于 2010-04-15T09:14:02.313 回答