SASS: установить переменную во время компиляции - PullRequest
8 голосов
/ 08 апреля 2011

Можно ли установить переменную sass во время компиляции?В основном я хочу сделать это:


$color: red !default;
div#head {

  background-color: $color;

}

Когда я компилирую в css, я хочу установить для $ color значение «blue» (желательно из командной строки).Кто-нибудь смог сделать это?

Спасибо, Крис

Ответы [ 2 ]

6 голосов
/ 11 июля 2012

Я нашел это в их FAQ http://sass -lang.com / docs / yardoc / file.FAQ.html

Если вы просто хотите передавать некоторые переменные в CSS каждый развремя компиляции, например --watch, вы можете использовать функции Sass для определения сценариев Ruby даже для запроса к базе данных.Но код будет скомпилирован только один раз и обслуживаться статически.

Но если вам нужно перекомпилировать его при каждом запросе с различными опциями,

вы можете использовать Sass :: Engine для визуализации кода, используя : пользовательский параметр для передачи данных, к которым можно получить доступ из ваших функций Sass

Похоже, что это не рекомендуется, хотя.Вероятно, из соображений производительности.

6 голосов
/ 07 марта 2012

Альтернативой параметров командной строки является создание других файлов, присваивающих значения переменным.

Предположим, что приведенный выше код находится в файле с именем 'style.scss'.Чтобы установить для $ color значение «blue», создайте файл, например:

$color: blue;
@import "style";

и назовите его, например, «blue.scss».Затем скомпилируйте его следующим образом.

sass blue.scss:style.css

Если вы хотите присвоить другое значение переменной, создайте другой файл с именем "green.scss", например:

$color: green;
@import "style";

Затем скомпилируйте его с помощью

sass green.scss:anotherstyle.css

Это немного напрягает, но позволяет определять значения переменных во время компиляции.

...