Visual Studio - 预编译 - 无点

时间:2010-02-01 12:47:34

标签: asp.net-mvc visual-studio-2008 less dotless

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

该网站给了我dotless.compiler.exe,但我不知道如何将其与视觉工作室挂钩。我正在寻找Webforms和ASP.NET MVC的解决方案。

7 个答案:

答案 0 :(得分:20)

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

例如,在Visual Studio中使用预构建任务(全部为1行):

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

宏($(SolutionDir)等)允许项目和文件位置的一些灵活性。而不是使用标准.less文件,只需引用标记中的新.css文件。

答案 1 :(得分:7)

所有

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

See it in use here

Download the signed extension.

Source code is here.

我刚刚将它提交到VS扩展库。希望很快它会在那里,但在此期间请安装(或编译然后安装)并检查出来。

答案 2 :(得分:3)

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

每当你想在编译时在你的解决方案中生成一些东西时,T4通常就是这样......

答案 3 :(得分:3)

这是我提出的使用MSBuild的解决方案。它是递增的,所以它应该只在Less更改时发生。它还正确处理@import

首先,使用NuGet为您的项目添加无点。你不需要它添加到web.config的任何魔法,所以你可以恢复它 - 你只是用它来获得编译器的可执行文件。

接下来,将您的“root”Less文件添加到.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>

答案 4 :(得分:2)

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

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

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

答案 5 :(得分:2)

在我寻找使用DotLess时,我也找到了这个库:

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

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

答案 6 :(得分:2)

您可能需要查看Chirpy。它比LESS有更多的支持。我希望在写我自己之前就能找到它。

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

或者它也位于JsBuildTools下的扩展程序库中。