Ostatnio pisałem o wykorzystaniu nowego pomysłu jakim jest LESS w Visual Studio tak by usprawnić pracę ze stylami. Dziś podzielę się kilkoma spostrzeżeniami na temat tego jak to wygląda przy używaniu tego “bajeru” w aktualnym projekcie. Tak nawiasem mówiąc mało zostało z tego rozwiązania ostatnio prezentowanego, bo okazuje się, że generalnie rzecz biorąc jest marne. Powodów jest kilka. Przede wszystkim T4 w Visual Studio ma sporo ograniczeń i niedorobień (mniej lub bardziej celowych) oraz zachowuje się różnie na różnych wersjach Visual Studio. Tutaj akurat jedyną różnicą jaką pamiętam była inna ścieżka poszukiwać przy LESS-owym poleceniu import. Jak się pomęczyło chwilę w Visual Studio 2010 by przeszukiwany był folder z plikiem, to w Visual Studio 2008 wychodziło zupełnie co innego (jakiś katalog w C:/Program Files/Common Files/…).

Kolejna sprawa to to, że sami musieliśmy klikać na pliku T4CSS.tt i odpalać na nim Run Custom Tool. Jest to totalnie bez sensu w szczególności wtedy, gdy chcemy aby działo się to automatycznie (wystarczy intensywna praca ze stylem by poznać urok automatycznej kompilacji do CSS). Nawet gdy ręczna kompilacja nam nie przeszkadza, to błąd typu literówka w naszym pliku LESS skutecznie popsuje nam życie (plik wynikowy ze stylem nie będzie nic zawierał lub będzie zawierał złapany wyjątek ze Stack Trace, a my nawet nie zdamy sobie o tym sprawy bez zaglądania do tegoż pliku). A jeszcze ostatnia, względnie niepowiązana rzecz, to to, że w sumie do pracy ze stylem w LESS nie jest nam potrzebne VS w ogóle. Visual Studio 2010 wspiera co prawda pliki LESS i LESSX poprzez ten plugin, ale mimo to Notepad++ jest tysiąckroć lepszy (jak zawsze ;])

Widać sporo mankamentów, więc należy zmienić approach na nieco bardziej konsolowy (czyli to co tygryski lubią najbardziej). W MSDN-landzie tego nie serwują, więc będzie tym bardziej użyteczne. Ja z początku chciałem wypróbować wsparcie innych, rzadkich rozwiązań w VS, więc to podejście jest moim drugim (i mam nadzieję ostatnim). Inna sprawa, że nie przepadam za aplikacjami konsolowymi działającymi cały czas w tle (na Windowsie to boli i irytuje), ale gdy się już przywyknie, to da się przeżyć.

Bardzo dobrym podejściem jest zainstalowanie na maszynie Ruby on Rails, które strasznie mi się, nawiasem mówiąc, spodobało już po pierwszym kontakcie. Mając Railsy wystarczy z konsoli wklepać instrukcję pobrania gema LESS CSS i… już wszystko gotowe do dzieła. Pozostaje nam już tylko uruchomić nowo zainstalowany lessc z flagą watch.

$ lessc style.less --watch

Od tej pory ilekroć zmodyfikujemy plik less, zostanie on przekompilowany do pliku css. O tym fakcie będzie informacja w konsoli, oraz w przypadku jakiegokolwiek błędu będzie o tym informacja.

Ja osobiście używam analogicznej metody, ale dostarczonej przez DotLess. 6 grudnia wyszła całkiem racjonalnie działająca wersja i ma funkcjonalność zbliżoną (prawie jednakową) do gema LESS CSS. Jest to wersja napisana w C#, przez co nie potrzeba mieć włączonej maszyny Ruby-ego cały czas w tle. Ponadto ma jedną dużą zaletę w stosunku do oryginalnej wersji – opcję minimalizacji wynikowego CSS bez większych problemów. Wystarczy flaga –m.

Przy okazji jeszcze wspomnę o czymś bardzo fajnym. Jeśli mamy zainstalowany NU, to wchodzimy do katalogu z naszym projektem i prosimy NU o ściągnięcie wszystkiego, czego nam potrzeba do pracy z LESS CSS poprzez:

$ nu install dotless

NU jest odpowiednikiem gemów na platformie .NET – jest takim package managerem dla .NET, który został zbudowany bezpośrednio na systemie gemów, o których pisałem na początku wpisu. Jego funkcjonalność? Pobranie i zainstalowanie najnowszej wersji wybranych przez nas bibliotek lub projektów. Oczywiście ma nieco większą funkcjonalność oraz obsługuje wiele znanych i mniej znanych projektów i bibliotek, które możemy chcieć użyć w naszych aplikacjach.

Referencje

NU and DotLess

Info about NU

Strona główna projektu NU (Nubular)