2010-02-01 11 views

Odpowiedz

20

zależności od środowiska kompilacji, ty może uruchomić dotless.Compiler.exe jako zadanie kompilacji.

Na przykład za pomocą zadania Gotowy w Visual Studio (wszystkie 1 linia):

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

makra ($(SolutionDir), etc) pozwalają nieco elastyczności do projektu i lokalizacje plików. Zamiast używać standardowych plików .less, po prostu odwołaj się do nowych plików .css w swoim znaczniku.

+0

ALL IN ONE LINE jest bardzo ważne, w przeciwnym razie pojawi się błąd MS Build. Komenda oparta na gównie -1. – Sakthivel

+0

Jeśli chodzi o możliwość przenoszenia: nie zapomnij zamknąć każdego parametru polecenia w cudzysłowie, ponieważ zadania budowania są wykonywane jako plik wsadowy, a partia nie może obsługiwać spacji w nazwach katalogów. Przykład: '" $ (ProjectDir) .. \ .. \ .. \ .. \ lib \ dotless \ tool \ dotless.compiler.exe "" $ (ProjectDir) Style \ Home.less "" $ (ProjectDir) Style \ Home.css "' – ViRuSTriNiTy

3

Phil Haack na ratunek: http://haacked.com/archive/2009/12/02/t4-template-for-less-css.aspx

Gdy chcesz mieć coś wygenerowany w roztworze w czasie kompilacji, T4 jest zwykle droga ...

+3

także szablony T4 teraz jest częścią projektu dotless i jest generowany przez buildserver przy każdym zatwierdzeniu (szablony Phila są obecnie nieaktualne). Możesz pobrać najnowsze t4css z bezstratnego buildserver klikając na przycisk pobierania na naszej stronie http://www.dotlesscss.com – Tigraine

2

Istnieje również inny sposób prekompilacji podczas programowania.

Projekt bez kropek zawiera kompilator linii poleceń (dotless.Compiler.exe), który może kompilować i zminimalizować CSS.

Można również użyć kompilatora.exe z parametrem -watch, w którym będzie on działał, i przeskanować plik wejściowy w poszukiwaniu zmian, regenerując po każdym wprowadzeniu zmian w pliku. W ten sposób uniezależniasz się od Visual Studio.

+0

Dzięki temu jest to naprawdę dobra wskazówka. – Pickels

+0

Dlatego napisaliśmy tę funkcję .. Masz zbyt wiele pytań od programistów php, którzy chcieliby używać bezkresnych, ale nie dbali o wszystkie rzeczy związane z .NET. I bez kropek jest przecież tylko jeden exe i jeden dll, w przeciwieństwie do rubinu. – Tigraine

7

Wszystko,

Po użyciu tylko o wszystkich alternatyw omawianych tutaj i nie jest usatysfakcjonowany, napisałem LessCss kompilatora dodatek dla Visual Studio. To zajmuje .less plików i generuje pliki .css tylko wtedy, gdy zmienia się plik .less. Używa najnowszego i najlepszego kompilatora less.js.

See it in use here.

Download the signed extension.

Source code is here.

Właśnie przekazała go do VS galerii rozszerzeń. Mam nadzieję, że wkrótce się pojawi, ale w międzyczasie zainstaluj (lub skompiluj, a następnie zainstaluj) i sprawdź.

+0

Widziałem wideo i wygląda dokładnie to, czego szukałem. Nie mogę go jednak zainstalować. Instalator najwyraźniej działa, ale nie pojawia się w Visual Studio. Czy wiesz, dlaczego tak się dzieje? – jpbochi

+1

BTW, czy zostało zatwierdzone w Galerii rozszerzeń VS? Nie mogę go tam znaleźć. – jpbochi

+0

Udało mi się go teraz zainstalować. Postępowałem zgodnie z tym: http://msdn.microsoft.com/en-us/library/ee814429.aspx, ale nie jestem pewien, co było, aby rozwiązać problem. – jpbochi

2

Być może zechcesz rzucić okiem na Chirpy. Ma o wiele więcej wsparcia niż tylko MNIEJ. Szkoda, że ​​nie znalazłem tego przed napisaniem własnego.

Mówiąc o tym, napisałem również narzędzie do budowania niestandardowego Visual Studio, które wykonuje przy użyciu pliku JS (zamiast pliku.NET port) można spojrzeć na źródło tutaj: https://github.com/paultyng/JsBuildTools

Lub jest również w galerii rozszerzeń pod JsBuildTools.

3

Oto rozwiązanie, które wymyśliłem, używając MSBuild. Jest to przyrostowe, więc powinno się to zdarzyć tylko wtedy, gdy mniej się zmieni. Poprawnie obsługuje także @import.

Po pierwsze, dodaj dotless do swojego projektu z NuGet. Nie potrzebujesz żadnej magii, którą dodaje ona do twojego web.config, więc możesz to zmienić - po prostu używasz go, aby uzyskać wykonywalny kompilator.

Następnie dodaj swoje "roota" mniej pliki do .csproj, tak:

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

Wreszcie dodać ten fragment na dole .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> 
+0

Czy automatycznie dołącza pliki do projektu? Czy nadal muszę wyświetlać wszystkie pliki, a następnie ręcznie dodawać wygenerowane pliki? Proszę odpowiedzieć .. dziękuję! – fiberOptics

+0

Nie trzeba mówić o mniej plikach, które są dołączane tylko z innych plików. Te są automatycznie uwzględniane przez wzorzec "** \ *. Less". Ale musisz powiedzieć o "root" Mniej plików, które zawierają to (w LessCssRootInput). Spowoduje to utworzenie jednego pliku CSS na plik "root" mniej. –

+0

Perfecto !!!!!!! –