Sass czy Compass bez rubinu?

102

Czy jest sposób na użycie Sass, Compass lub czegoś podobnego bez Rubiego?

Rozglądałem się po Google i tej stronie i nie mogę nic znaleźć, każda pomoc byłaby mile widziana. Dziękuję Ci

Troy Cosentino
źródło
3
Czy to prawdziwe pytanie? Chodzi mi o to, że nie jest jasne, co masz na myśli. Czy istnieją inne preprocesory CSS, które nie opierają się na Rubim? Tak. Czy istnieje sposób na skompilowanie Sassa bez Rubiego? Zależy. Potrzebujemy więcej informacji.
Jamund Ferguson
Ale nie określasz, w jakim języku chcesz, aby parser był zapisywany.
Alejandro García Iglesias
1
Czy istnieje sposób na pobranie wstępnie skompilowanej wersji?
William

Odpowiedzi:

53

Sass został pierwotnie napisany dla Rubiego, ale teraz stworzyli libSass, który jest C/C++portem silnika Sass, co ułatwia integrację silnika z IDE lub innym językiem. W tym momencie możesz użyć silnika Sass w Ruby, Node.js , Python , PHP , Java , .NET i innych. Aby uzyskać więcej informacji, odwiedź libSass . Ponadto, twoje IDE może mieć wtyczkę, która wspierałaby Sass, bez potrzeby używania ruby, używając libSass.

Oryginalna odpowiedź poniżej może, ale nie musi, odnosić się do twojej sytuacji (zależy od tego, czy twój język ma zaimplementowaną obsługę libSass, czy nie). Postanowiłem zostawić to tak, jak jest ze względów archiwalnych.


Sass (wymaga Ruby)

Sass jest napisany w języku Ruby, więc będziesz potrzebować również zainstalowanego Rubiego. Zaczerpnięte z witryny Sass

Kompas (wymaga Rubiego, ponieważ jest oparty na SASS)

Compass to framework do tworzenia CSS typu open source, który wykorzystuje język arkuszy stylów Sass, aby pisanie arkuszy stylów było potężne i łatwe. Zaczerpnięte z witryny kompasu

Less (napisane w js, wymaga dołączenia node.js lub less.js na stronie)

LESS rozszerza CSS o dynamiczne zachowanie, takie jak zmienne, miksery, operacje i funkcje. LESS działa zarówno po stronie klienta (Chrome, Safari, Firefox), jak i po stronie serwera, z Node.js i Rhino. Zaczerpnięte z witryny Lessa

Są to główne znane mi procesory. Możesz napisać własny parser / port dla dowolnego innego wybranego języka.

Innymi słowy, nie, nie możesz używać sass / compass bez posiadania Rubiego, ponieważ sam program (sass i kompas) JEST napisany w Rubim. Więc na pewno będziesz go potrzebować, aby go uruchomić.

tftd
źródło
Jest to technicznie dokładne, ale nie do końca trafne, ponieważ różne wtyczki mogą się tym zająć. Na przykład w programie Visual Studio jest wtyczka Mindscape Workbench, która ma niezależne środowisko rubinowe, o które nie będziesz musiał się martwić. Nie będzie to jednak dla ciebie kompasu, co jest pewnego rodzaju utrapieniem.
George Mauer
@TroyCosentino lub Stylus
Alejandro García Iglesias
Nie, nie próbowałem znaleźć podobnych kompilatorów w innych językach. Powinieneś być w stanie napisać kompilację od podstaw w prawie każdym przyzwoitym języku, ale najprawdopodobniej zajmie ci to dużo czasu. Najpierw będziesz musiał być w stanie przeanalizować css (i wykryć wszelkie błędy w składni css), a następnie będziesz musiał „skompilować” (czyli przeważnie przeformatować - tj. Kod css to jedna linia) css. Potem najprawdopodobniej będziesz chciał dodać wiele CSS z dziedziczeniem. Jeśli czujesz, że masz czas, możesz spróbować to zrobić i podzielić się z nami
wynikami
1
LESS jest również możliwe natywnie w .NET przy użyciu pakietu dotLESS NuGet.
David Boike
27

To prawda, że ​​pytanie nie jest wystarczająco jasne, ale spróbuję rozwiązać kilka problemów. Tam inne CSS pre-procesory, które nie opierają się na dwóch najbliższych Ruby (moim zdaniem właśnie teraz są mniej , co ja używałem i lubi, ale nie tak silny jak Sass, a Stylus , które nie zostały wykorzystane, oba oparte na JavaScript), ale ponieważ pytasz konkretnie o Sass + Compass, a ja wciąż szukam tej samej odpowiedzi, opowiem o tym.

@JamundFerguson powiedział:

Czy istnieje sposób na skompilowanie Sassa bez Rubiego? Zależy.

Jest

Sass to język przetwarzania wstępnego. Jest kompilator wbudowany w Ruby i każdy może napisać kompilator w dowolnym języku. Istnieje implementacja kompilatora Sass o nazwie libsass w języku C, której można używać w dowolnym języku, który umożliwia importowanie bibliotek C. Jest to biblioteka używana przez node-sass , który jest kompilatorem zbudowanym w Node.js , którego jeszcze nie próbowałem i nie wiem, jak może działać i czy jest gotowy do użytku produkcyjnego. Przeniesienie Compassa może być kwestią czasu (może w końcu to zrobisz?), Więc możemy mieć kompilator, który nie zależy od klejnotu Ruby (obecnie istnieje moduł node-compass , który opiera się na klejnot Ruby).

Inne języki

Do tej pory wspomniałem o możliwości kompilatora Node.js, który, jak być może wiesz, jest to środowisko JavaScript, będące językiem sieci i moim wybranym językiem. Ale nie określiłeś, w jakim języku chcesz pisać kompilator. Myślę, że mogą istnieć kompilatory zbudowane w wielu językach, na przykład @EricMeyer wspomniał o kompilatorze Pythona . Może używa pyScss ? Wygląda na to, że ma wbudowaną obsługę Compass. Ale wtedy potrzebujesz środowiska Python. Więc chodzi o to: trzeba trochę środowisko dla kompilatora chyba uruchomić natywnie skompilowane pliki binarne. (Less ma less.js, który można dołączyć do strony, aby uruchomić po stronie klienta i uniknąć kroku kompilacji, ale nie jest przeznaczony do używania go w środowisku produkcyjnym).

Aplikacje natywne

Pracuję przez rok z CodeKit, który działa bardzo dobrze, kompiluje języki Sass / Compass, Less, Stylus i szablony, takie jak Haml, Slim, Jade, itp. Odbudowuje zasoby, gdy zmieniają się automatycznie, i natychmiast widzisz zmiany w przeglądarce. Jedyne, co mi się nie podobało, to to, że przenosząc się na inny komputer, instalując CodeKit, sprawdzając projekt i próbując go użyć, musiałem ponownie skonfigurować ustawienia projektu, o czym musiałem pamiętać, aby móc przejść do kompilacji jak ten, który zrobiłem na innym komputerze. Zacząłem też pracować z zespołem, a oni musieli także skonfigurować projekt z tymi samymi ustawieniami (czasami brak takiej samej konfiguracji projektu prowadził do brzydkich niespójności), a także członkowie zespołu używający Ubuntu nie mogli go używać. Dlatego zacząłem myśleć o stworzeniu narzędzia wiersza poleceń do tworzenia projektów i odkryłemnatychmiast i zakochałem się w nim. Jak wspomniał @Dave, jest Scout, a także LiveReload , ale ich nie używaliśmy.

Wniosek

Wniosek jest taki, że nie mam mocnego wniosku. Nadal szukam tej samej odpowiedzi, ale mam nadzieję, że ta odpowiedź rzuci trochę światła na stan kompilowania Sass / Compass poza środowiskiem Ruby.

Alejandro García Iglesias
źródło
1
Informacje o stanie libsass: solitr.com/blog/2014/01/state-of-libsass , od których zależy node-sass i inne biblioteki sass.
Ehtesh Choudhury
27

Właściwie istnieje biblioteka, która zapewnia powiązanie Node.js z libsass, wersją Sass w C: https://npmjs.org/package/node-sass

Pozwala na natywne kompilowanie plików .scss do css z niesamowitą szybkością bez zainstalowanego Rubiego.

Aby zainstalować wystarczy uruchomić:

npm install node-sass

W razie potrzeby istnieje również rozszerzenie Grunt: https://github.com/sindresorhus/grunt-sass (właśnie tego szukałem w tym pytaniu)

Dowiedz się więcej na: https://github.com/andrew/node-sass

gkond
źródło
1
burk-sass był tym, czego szukałem.
9ilsdx 9rvj 0lo
11

To tylko mała aktualizacja, możesz używać plików SCSS / SASS i generować poprawne pliki w locie bez instalowania Ruby za pomocą programu o nazwie Scout.

Scout ma własne, niezależne środowisko ruby ​​i jest zakodowany w Javie, więc przed użyciem upewnij się, że ta wersja jest aktualna. Linky tutaj.

Pozdrowienia :)

Dave
źródło
8
Wolałbym ruby ​​niż java;)
basarat
Właściwie w chwili, gdy piszę ten Scout używa Adobe Air. Może stara wersja korzystała z Javy?
ikonoklast
3
wciąż rubinowy lepszy niż Air :)
x0x
2

Adobe Brackets (darmowy, open source) może kompilować LESS, SASS i Stylus po zmianie plików i aktualizować style podczas podglądu na żywo, wystarczy zainstalować wymagane rozszerzenia z menedżera rozszerzeń. Kup wsporniki i ciesz się!

Edycja: Jak sugerują inne pytania, node-sass jest również dobrą opcją, jeśli masz już zainstalowany nodejs.

Bangash
źródło