Как заставить Compass смотреть несколько папок одновременно?

Я использую Compass + Sass для управления/объединения файлов .css. Поэтому у меня есть следующая структура папок:

Root
--Module
----css
----sass
--Module
----css
----sass
--Module
----css
----sass

И вот что я хотел бы достичь: во время фазы разработки я хотел бы указать компас в свою корневую папку, и он должен следить за любыми изменениями в файлах, расположенных в каталогах sass (в каждом Module). После изменения одного из файлов .sass - необходимо создать файл .css (для модуля, измененного .sass), и вставить в папку css под тем же Module.

Возможно ли это?

Мое предположение, я должен использовать config.rb для этой цели, но я не уверен, как это сделать правильно. Может ли кто-нибудь указать мне на решение или просто описать общее представление о том, как это сделать?

EDIT: я нахожусь в среде Windows, поэтому не могу использовать команды Linux (я могу установить Cygwin, но я бы предпочел избежать этого)

Спасибо

Ответ 1

Единственным обходным решением, которое я нашел, является запуск нескольких экземпляров Compass - по одному на модуль. Я уверен, что может быть более элегантное решение, настроив исходный код Compass, но, к сожалению, я еще не знаком с Ruby...

Ответ 2

У меня есть настройка структуры папки по-разному:

  • активы
    • пререкаться
      • модули
        • _module1.scss
        • _module2.scss
        • _module3.scss
      • screen.scss
    • таблицы стилей
      • screen.css
    • config.rb

screen.scss:

@import "modules/module1";
@import "modules/module2";
@import "modules/module3";

config.rb:

...
css_dir = "stylesheets"
sass_dir = "sass"
...

Символы подчеркивания в начале имен модулей означают, что они не будут скомпилированы в отдельные файлы css. Операторы импорта объединяют их так, что все css заканчиваются вместе в screen.css. Обратите внимание, что в операторах импорта вам не нужны символы подчеркивания или .scss.

Вы можете немного изменить эту структуру, если хотите сохранить отдельные файлы css (это то, что вы предлагали сделать). Удалите символы подчеркивания, а компас создаст отдельные файлы.

  • активы
    • пререкаться
      • модули
        • module1.scss
        • module2.scss
        • module3.scss
      • screen.scss
    • таблицы стилей
      • модули
        • module1.css
        • module2.css
        • module3.css
      • screen.css
    • config.rb

В этом случае вам не нужны какие-либо операторы импорта в screen.scss, так как каждый отдельный файл должен быть включен отдельно в html-документ.

В обоих этих сценариях вы запускаете "компас-часы" один раз в папке с ресурсами. Обратите внимание, что вам не нужно ничего создавать в каталоге stylesheets. Компас сделает это.

Ответ 3

Используйте additional_import_paths или более простой add_import_path в файле config.rb.

additional_import_paths Array of Strings Другие пути в вашей системе, из которых можно импортировать sass файлы.

add_import_path Вызовите эту функцию, чтобы добавить путь к списку путей импорта sass для вашего проекта компаса. Например: add_import_path "/Users/chris/work/shared_sass"

См. этот ответ с примерами использования add_import_path

Источник: http://compass-style.org/help/documentation/configuration-reference/

Ответ 4

скомпилируйте и просмотрите несколько независимых проектов Sass Compass: fooobar.com/info/480240/...