Используйте несколько файлов SASS

Я хочу разделить мой (гигантский) глобальный файл css на несколько файлов. Я использую сасс. Есть ли простой способ заставить sass просматривать несколько файлов? Я думаю, что мог бы использовать @import, но просто хотел узнать, есть ли другой (лучший) способ.

Заранее спасибо.


person Chris    schedule 06.04.2011    source источник
comment
Смотреть файлы: sass --watch public/stylesheets/sass:public/stylesheets. Это будет отслеживать все файлы .scss в public/stylesheets/sass и записывать их как .css в public/stylesheets/.   -  person Zabba    schedule 07.04.2011
comment
Я думаю, что это на самом деле лучшее решение, потому что оно позволяет использовать отдельные файлы CSS. Спасибо.   -  person Chris    schedule 07.04.2011


Ответы (2)


То, что упоминает Рич Брэдшоу, верно, однако есть еще один подход, который вы можете использовать.

Создайте 1 файл scss с именем combined.scss (например), затем внутри этого файла @import все ваши файлы scss, затем просто запустите sass --style compressed --watch combined.scss:combined.css, и он обнаружит изменения в импортированных файлах scss и при необходимости перекомпилирует.

Combined.scss пример:

@import "reset";
@import "layout";
@import "styles";
@import "ie";

Поэтому, когда вы вносите изменения в файл layout.scss, файл combined.scss будет перекомпилирован, и все ваши фактические html-страницы должны будут ссылаться на combined.css.

Но, как я уже сказал, решение Рича Брэдшоу будет работать так же хорошо, и в зависимости от проекта, над которым вы работаете, может быть лучше использовать его.

person Jannis    schedule 06.04.2011
comment
Это то, что я искал. Спасибо за помощь. - person Chris; 07.04.2011
comment
Отлично, рад, что смог помочь. Я забыл упомянуть одну маленькую вещь: @mixins доступны для файла только в том случае, если вы ссылаетесь на них напрямую. Поэтому, если вы хотите создать отдельный файл только для mixins, убедитесь, что каждый файл, которому требуется доступ к нему, имеет @import "mixin"; в качестве первой строки (например, в layout.scss и в styles.scss). - person Jannis; 10.04.2011
comment
Еще одно замечание: когда вы ставите перед дополнительными таблицами стилей символ подчеркивания (например, _reset.scss), Sass не будет компилировать их в css. Если вы включаете их с @import "reset.scss (подчеркивание здесь можно опустить) в вашем комбинированном.scss, то будет скомпилирован только комбинированный.scss, даже если некоторые из включенных scss-файлов изменились. - person acme; 07.09.2011

Я использую импорт, затем иду в мой медиа-каталог, который включает в себя каталог с именем css со всеми моими css и запускаю sass --style compressed --watch css:css. Это создает один файл css из множества файлов scss.

Чтобы пояснить это, если вы называете импортированные файлы, начинающиеся со знака подчеркивания, SASS не пытается их скомпилировать.

Итак, если у вас есть файл с именем style.scss, содержащий эти строки,

@import 'reset';
@import 'blog';

и некоторые файлы с именами _reset.scss и _blog.scss будут означать, что когда вы запускаете приведенную выше команду, она создает один файл с именем style.css, который содержит все остальные файлы. Переменные, объявленные выше, также работают.

person Rich Bradshaw    schedule 06.04.2011
comment
Спасибо за совет по поводу имени файла, начинающегося с подчеркивания, я этого не помнил, и это было то, что я искал! - person Pierre-Adrien; 14.10.2012
comment
одна вещь ... Подчеркивание просто говорит Sass не создавать файл CSS, когда он компилирует. Это не означает, что вы полностью игнорируете содержимое этого файла. – @cimmanon в stackoverflow.com/questions/13323220/ - person luigi7up; 11.11.2013