Visual Studio - precompile - dotless
-
24-09-2019 - |
Frage
Ich frage mich, ob es einen Weg zu precompile *.less
Dateien ( http://www.dotlesscss.org/) mit Visual Studio.
Die Website gibt mir ein dotless.compiler.exe
aber ich bin nicht sicher, wie Visual Studio dieser bis haken. Ich bin auf der Suche nach einer Lösung für beide Webforms und ASP.NET MVC.
Lösung
Je nach Build-Umgebung können Sie dotless.Compiler.exe
als Build-Task beginnen.
Zum Beispiel mit einer Pre-Build-Aufgabe in Visual Studio (all 1 Zeile):
$(SolutionDir)Tools\dotLess\dotless.compiler.exe -m
$(ProjectDir)content\css\site.less $(ProjectDir)content\css\site.css
Die Makros ($(SolutionDir)
usw.) erlauben ein wenig Flexibilität zu Projekt- und Dateispeicherorte. Anstatt die Standard .less
Dateien verwenden, verweisen Sie einfach die neuen .css
Dateien in Ihrem Markup.
Andere Tipps
Alle,
Nach der Verwendung von nur etwa alle Alternativen hier diskutiert und nicht zufrieden ist, schrieb ich einen LessCss Compiler Addin für Visual Studio. Es dauert .Weniger Dateien und erzeugt CSS-Dateien nur, wenn die .Weniger Datei ändert. Es nutzt die neueste und größte less.js Compiler.
es in Verwendung finden Sie hier .
die signierte Erweiterung zum Download.
Ich kann es nur auf der Erweiterungsgalerie VS vorgelegt. Hoffentlich wird es bald da sein, aber in der Zwischenzeit bitte installieren (oder kompilieren und installieren) und check it out.
Phil Haack zur Rettung: http : //haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx
Wenn Sie in Ihrer Lösung haben, bei der Kompilierung erzeugte etwas wollen, ist T4 in der Regel die Art und Weise ...
gehen Hier ist die Lösung kam ich mit, mit MSBuild. Es ist inkrementell, so sollte es nur geschehen, wenn die weniger ändert. Es ist auch richtig behandelt @import
.
Fügen Sie zunächst dotless zu einem Projekt mit NuGet. Sie brauchen nicht von der Magie, um sie Ihren web.config
fügt hinzu, so können Sie zurückkommen, dass -. Sie verwenden es nur den Compiler ausführbare Datei zu erhalten
Als nächstes fügen Sie Ihre "root" Weniger Dateien auf Ihren .csproj
, etwa so:
<ItemGroup>
<LessCssRootInput Include="example.less" />
</ItemGroup>
Schließlich, fügen Sie diesen Schnipsel an der Unterseite Ihres .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>
Es gibt auch eine andere Art und Weise zu precompile während der Entwicklung.
Das dotless Projekt verfügt über eine Kommandozeilen-Compiler (dotless.Compiler.exe), die kompilieren und minify die CSS.
Sie können auch die compiler.exe mit dem --watch Parameter verwenden, wo es halten laufen und scannen Sie Ihre Eingabedatei für Änderungen, zu regenerieren, wenn Sie Änderungen an der Datei vornehmen. So machen Sie unabhängig von Visual Studio.
Auf der Suche nach Arbeit mit dotless Ich fand auch diese Bibliothek:
http: / /www.codethinked.com/post/2010/03/17/Bundler-Now-Supports-Css-And-less.aspx
es auf meine eigene Frage hinzufügen, weil sie anderen helfen könnten.
Sie können einen Blick auf Chirpy nehmen wollen. Es hat viel mehr Unterstützung als nur LESS. Ich wünschte, ich hätte es vor gefunden habe, meine eigenen zu schreiben.
Beim Reden, von denen ich schrieb auch ein Visual Studio Custom Build-Tool, das führt die JS-Datei (anstelle des .NET-Port) verwenden Sie einen Blick auf die Quelle nehmen hier: https://github.com/paultyng/JsBuildTools
Oder es ist auch auf der Erweiterungsgalerie unter JsBuildTools .