Я не нашел, как включить их в журнале разработки, но могу добиться того же с помощью sass --watch.
Вот мой application.css.scss, который в основном извлекает другие sass-файлы, используя sass @import (не sprockets * = require. См. здесь , почему.) Для использования общих переменных / mixins / functions:
/*
*= require_self
*= depend_on projects
*/
@import "layout.css.scss";
@import "projects.css.scss";
Теперь предположим, что layout.css.scss имеет эту переменную:
$main-color: #327B31;
Я могу получить его значение в файле project.css.scss
@debug "Main color is:" $main-color;
@warn "Darker: " darken($main-color, 20%);
Я открываю окно терминала и указываю sass --watch на основной файл .scss, который загружает остальные
$ sass --watch app/assets/stylesheets/application.css.scss --stop-on-error --trace
>>> Sass is watching for changes. Press Ctrl-C to stop.
>>> Change detected to: /home/yuval/ws/books/railscasts/268-sass-basics/app/assets/stylesheets/projects.css.scss
app/assets/stylesheets/projects.css.scss:5 DEBUG: "Main color is:" #327b31
WARNING: "Darker: " #143214
on line 6 of app/assets/stylesheets/projects.css.scss
from line 16 of app/assets/stylesheets/application.css.scss
overwrite app/assets/stylesheets/application.css.css
--stop-on-error
потому, что ошибки приводят к повторной попытке sass --watch, чего я не хочу. --trace
дает вам обратную трассировку в случае ошибки.
Пока ошибка не возникает, этот журнал будет обновляться при каждом сохранении.
Мне нравится этот подход еще и потому, что он нейтрален по отношению к ruby / rails (как и должно быть), и работает с любым sass-сервером.
Кроме того, это работает, если вы используете Compass поверх Sass.
Просто активируйте компас в своем файле application.css.scss (или любом другом файле .scss):
@import "compass";
и затем используйте `` compass watch```:
$ compass watch app/assets/stylesheets/application.css.scss --css-dir tmp/cache/
--css-dir tmp/cache/
- чтобы компас не создавал файлы .css, которые переопределяют ваши .scss. Я выкидываю их в кеш с этим.