Чи є SASS.js? Щось на зразок LESS.js?


112

Я використовував LESS.js раніше. Це просто у використанні, щось на кшталт

<link rel="stylesheet/less" href="main.less" type="text/css">
<script src="less.js" type="text/javascript"></script>

Я бачив SASS.js . Як я можу використовувати його аналогічно? Розбір файлу SASS для негайного використання в HTML. Здається, SASS.js більше для використання з Node.js ?

var sass = require('sass')
sass.render('... string of sass ...')
// => '... string of css ...'

sass.collect('... string of sass ...')
// => { selectors: [...], variables: { ... }, mixins: { ... }}

6
Для виробництва це корінь зла, для розвитку у вас є sass watch.
Hauleth

3
Мені подобається ідея, оскільки проблема з "sass watch" полягає в тому, що іноді ви тестуєте сторінку випадково, перш ніж "sass watch" запустився. За допомогою файлу less.js ви можете завантажити сторінку, переконайтесь, що css був складений, коли ви бачите сторінку. Звичайно лише в середовищі розробників.
Майя Кетрін Андерсен

Перевірте SassMeister: sassmeister.com - безкоштовний онлайн SASS укладач
Dan

1
Дійсно, sass.js
LukyVj

@Hauleth sass годинник (як і менше годин) іноді не є варіантом. Особливо, коли ваші вихідні файли обробляються сторонніми побудовами / залежностями, і ви можете мати повні файли вихідних файлів лише тоді, коли ви пакуєте або розгортаєте веб-додаток і розгортаєте його повільно. (тобто ... java web apps)
Zardoz89

Відповіді:


42

Не існує офіційно санкціонованої JavaScript реалізації sass або scss. Зараз я бачив декілька реалізацій, але жодна, яку зараз не рекомендую використовувати.

Однак, будь ласка, кілька моментів:

  1. Чому варто змусити всіх своїх користувачів складати свої таблиці стилів, коли ви можете зробити це один раз для всіх.
  2. Як виглядатиме ваш сайт, якщо JavaScript відключений.
  3. Якщо ви вирішите в майбутньому перейти на реалізацію на сервері, всі ваші шаблони повинні бути змінені відповідно.

Тож хоч трохи більше налаштувань для початку роботи, ми (команда sass core) вважаємо, що компіляція на стороні сервера - найкращий довгостроковий підхід. Аналогічно, менше розробники віддають перевагу компіляції на стороні сервера для виробничих таблиць стилів.


157
мій випадок використання: розробка html + css-шаблону, який буде введено в проект рейлів. Було б добре мати sass.js для цілей розвитку localhost, щоб мені не довелося спіткнутися з серверними речами.
Йозеф Ріхтер

93
Є багато випадків, коли компіляція на стороні клієнта є корисною. Наприклад, якщо ви хочете дозволити користувачам грати з виглядом своєї сторінки і зберігати лише результат, який вони обирають назад на сервері.
montrealmike

26
Я на 100% погоджуюся з chriseppstein (чому, пекло, ви хочете, щоб користувачі збирали таблиці стилів), не охоплені тут, просто і просто: розробка. Весь мій розгорнутий js-код, який я хочу бути мінімізованим та стислим, як у моєму css. Але під час розробки допомагає мати доступ до коду, а не до "компільованої" версії. Я не впевнений, що я виступаю за всіх передніх інженерів, але можу сказати, що багато хто з нас використовує наш браузер і редактор як єдиний інструмент, необхідний на етапі розробки. Мені не хочеться "компілювати" sass / scss під час розробки. Розгортання /
ІС

15
Щось кинути на сторону авторів; Я хотів би розглянути можливість використання SASS, але я не використовую і не хочу використовувати Ruby; отже, рішення на стороні клієнта є кращим перед жодним. Запис у Ruby обмежує його використання лише рубіновим користувачам; якби це було написано в JS, його можна було б використовувати на клієнтах або на сервері (з вузлом, класичним asp, asp.net та, можливо, іншими).
День

27
реалізацію JavaScript також можна використовувати на стороні сервера з вузлом / носорогом тощо, не маючи залежності від рубіну
Сем Хаслер

29

Оскільки visionmeda / sass.js більше не доступний і SCSS-JS була оновлена в протягом 2 років, я міг би вас зацікавити в sass.js . Це libsass бібліотеки C ++ (також використовується node-sass ), зібраного в JavaScript за допомогою Emscripten. Реалізація для компіляції SCSS таблиць стилів , пов'язаних або вбудовуються в HTML можна знайти на sass.link.js .

Спробуйте sass.js, використовуючи інтерактивний майданчик


3
Тепер нам просто потрібен компілятор C ++ до Ruby, і ми можемо уніфікувати кодову базу.
joeytwiddle

1
sass.js здається значно величезним розміром 670 КБ (gzipped) порівняно з розміром 143.bb менше.js (gzipped). також я не бачу жодної опції в sass.js для динамічного встановлення змінних css порівняно з less.js. це дуже корисно, коли у вас є чудовий сайт
Анірудха,

7

ТАК

Як ми очікували, після переписування його на C ++ можна компілювати в Javascript через Emscripten .

Це версія браузера: https://github.com/medialize/sass.js/

Як вони рекомендують, для вузла ви можете використовувати цей: https://github.com/sass/node-sass


2
Комбінація цього та (на даний момент прийнятої) відповіді має бути фактично прийнятою відповіддю.
plaidcorp


5

Ви, безумовно, не повинні змушувати всіх своїх користувачів складати таблиці стилів, проте реалізація javascript може працювати і на сервері. Я також шукаю реалізацію Java sass - для використання в додатку node.js. Це щось розглядає команда sass?


3
Я не хочу використовувати SASS.js для виробництва! Я хочу мати можливість розгорнути розроблювальну машину без необхідності встановлювати рубін тільки для SASS. Після завершення розробки я можу обробити SASS на будь-якій машині і перемістити результат CSS на виробничий сервер.
А. Матіас Кезада

1
Я пропоную вам поглянути на використання Stylus замість sass для проектів Node.
airtonix

3

Є спроба на GitHub , scss-js . Однак він є неповним і жодних зобов'язань протягом п'яти місяців.


1
Це схоже на модуль js-вузла? Оригінальним питанням було реалізація на стороні клієнта, ні?
jayarjo

1

Чому LibSass

Поки немає офіційно санкціонованої JavaScript реалізації sass, існує офіційний порт C / C ++ двигуна Sass, відомий як LibSass . Оскільки LibSass - це офіційна реалізація, найкраще обрати бібліотеку JavaScript, яка використовує LibSass під кришкою.


На сервері

Для JavaScript, що працює в середовищі Node.js, є Node-sass .

Під капотом Node-sass використовує сам LibSass.


У браузері

Для JavaScript працює в браузері, є Sass.js .

Під капотом Sass.js використовує версію LibSass (v3.3.6 в момент мого написання цього), яка була перетворена в JavaScript з Emscripten .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.