Интерфейс командной строки Ruby Sass

⚠️ Внимание!

Ruby Sass достиг конца жизненного цикла и в настоящее время полностью не поддерживается. Пожалуйста, переключитесь на Dart Sass или LibSass при первой возможности.

Применение permalinkПрименение

Исполняемый файл Ruby Sass может быть вызван в одном из двух режимов.

Режим “один к одному” permalinkРежим “один к одному”

sass [input.scss] [output.css]

В режиме «один к одному» один входной файл (input.scss) компилируется в единственное место вывода (output.css). Если расположение вывода не передано, скомпилированный CSS выводится на терминал. Если ввод или вывод не передается, CSS считывается из стандартного ввода и выводится на терминал.

Входной файл анализируется как SCSS, если его расширение - .scss, или как синтаксис с отступом, если его расширение - .sass. Если у него нет одного из этих двух расширений или если он поступает со стандартного ввода, он по умолчанию анализируется как синтаксис с отступом. Это можно контролировать с помощью флага --scss.

Режим “многие ко многим” permalinkРежим “многие ко многим”

sass [<input.css>:<output.css>] [<input/>:<output/>] [input.css] [input/]...

В режиме «многие-ко-многим» один или несколько входных файлов компилируются в один или несколько выходных файлов. Входы отделяются от выходов двоеточиями. Он также может компилировать все файлы Sass в каталоге в файлы CSS с такими же именами в другом каталоге. Режим «многие-ко-многим» включается, когда любой аргумент содержит двоеточие, или когда передается флаг --update или флаг --watch.

Если входной файл передается без соответствующего выходного файла, он компилируется в файл CSS, названный в честь входного файла, но с расширением, замененным на .css. Если входной каталог передается без соответствующего выходного каталога, все файлы Sass в нем компилируются в файлы CSS в том же каталоге.

$ sass style.scss:style.css
      write style.css
      write style.css.map
$ sass light.scss:light.css dark.scss:dark.css
      write light.css
      write light.css.map
      write dark.css
      write dark.css.map
$ sass themes:public/css
      write public/css/light.css
      write public/css/light.css.map
      write public/css/dark.css
      write public/css/dark.css.map

При компиляции целых каталогов Sass игнорирует частичные файлы, имена которых начинаются с _. Вы можете использовать партиалы для разделения таблиц стилей без создания кучи ненужных выходных файлов.

В режиме «многие ко многим» будут компилироваться только таблицы стилей, зависимости которых были изменены позже, чем был сгенерирован соответствующий файл CSS. Он также будет печатать сообщения о состоянии при обновлении таблиц стилей.

Опции permalinkОпции

Общий permalinkОбщий

–load-path permalink--load-path

Этот параметр (сокращенно -I) добавляет дополнительный путь загрузки для Sass для поиска таблиц стилей. Его можно передавать несколько раз, чтобы обеспечить несколько путей загрузки. Более ранние пути загрузки имеют приоритет над более поздними.

$ sass --load-path=node_modules/bootstrap/dist/css style.scss style.css

Пути загрузки также загружаются из SASS_PATH переменная среды, если она установлена. Эта переменная должна быть списком путей, разделенных ; (в Windows) или : (в других операционных системах). Пути загрузки в SASS_PATH имеют приоритет над путями загрузки, переданными в командной строке.

$ SASS_PATH=node_modules/bootstrap/dist/css sass style.scss style.css

–require permalink--require

Эта опция (сокращенно -r) загружает Ruby gem перед запуском Sass. Его можно использовать для загрузки функций, определенных в Ruby, в среду Sass.

$ sass --require=rails-sass-images style.scss style.css

–compass permalink--compass

Этот флаг загружает Compass framework и делает его миксины и функции доступными для использования в Sass.

$ sass --compass style.scss style.css

–style permalink--style

Эта опция (сокращенно -t) управляет стилем вывода результирующего CSS. Ruby Sass поддерживает четыре стиля вывода:

  • nested (по умолчанию) изменяет правила CSS для соответствия вложенности исходного кода Sass.
  • expanded записывает каждый селектор и объявление в отдельной строке.
  • compact помещает каждое правило CSS в отдельную строку.
  • compressed удаляет как можно больше лишних символов и записывает всю таблицу стилей в одну строку.
$ sass --style=nested
h1 {
  font-size: 40px; }
  h1 code {
    font-face: Roboto Mono; }

$ sass --style=expanded style.scss
h1 {
  font-size: 40px;
}
h1 code {
  font-face: Roboto Mono;
}

$ sass --style=compact style.scss
h1 { font-size: 40px; }
h1 code { font-face: Roboto Mono; }

$ sass --style=compressed style.scss
h1{font-size:40px}h1 code{font-face:Roboto Mono}

–help permalink--help

Этот флаг (сокращенно -h и -?) печатает краткое изложение этой документации.

$ sass --help
Usage: sass [options] [INPUT] [OUTPUT]

Description:
  Converts SCSS or Sass files to CSS.

...

–version permalink--version

Этот флаг печатает текущую версию Sass.

$ sass --version

Наблюдение и Обновление permalinkНаблюдение и Обновление

Эти параметры влияют на режим многие-ко-многим.

–watch permalink--watch

Включает режим многие-ко-многим и заставляет Sass оставаться открытым и продолжать компилировать таблицы стилей всякий раз, когда они или их зависимости изменяются.

$ sass --watch themes:public/css
      write public/css/light.css
      write public/css/light.css.map

​# Then when you edit themes/dark.scss...
      write public/css/dark.css
      write public/css/dark.css.map

–poll permalink--poll

Этот флаг, который может быть передан только вместе с --watch, сообщает Sass, что нужно время от времени вручную проверять наличие изменений в исходных файлах, вместо того, чтобы полагаться на то, что операционная система уведомит его, когда что-то изменится. Это может быть необходимо, если вы редактируете Sass на удаленном диске, где система уведомлений операционной системы не работает.

$ sass --watch --poll themes:public/css
      write public/css/light.css
      write public/css/light.css.map

​# Then when you edit themes/dark.scss...
      write public/css/dark.css
      write public/css/dark.css.map

–update permalink--update

Этот флаг включает режим многие-ко-многим, даже если ни один из аргументов не является парами, разделенными двоеточиями.

$ sass --update style.scss
      write style.css
      write style.css.map

–force permalink--force

Этот флаг (сокращенно -f) можно передавать только в режиме многие-ко-многим. Это приводит к тому, что файлы Sass всегда компилируются в файлы CSS, а не компилируются только тогда, когда исходные файлы более актуальны, чем выходные данные.

Флаг --force нельзя передавать вместе с флагом --watch.

$ sass --force style.scss:style.css
      write style.css
      write style.css.map

–stop-on-error permalink--stop-on-error

Этот флаг можно передавать только в режиме многие-ко-многим. Он сообщает Sass немедленно прекратить компиляцию при обнаружении ошибки, а не пытаться скомпилировать другие файлы Sass, которые могут не содержать ошибок.

$ sass --stop-on-error themes:public/css
Error: Invalid CSS after "h1 {font-size: ": expected expression (e.g. 1px, bold), was "}"
        on line 1 of test.scss
  Use --trace for backtrace.

Ввод и Вывод permalinkВвод и Вывод

Эти параметры управляют тем, как Sass загружает свои входные файлы и как создает выходные файлы.

–scss permalink--scss

Этот флаг сообщает Sass о необходимости синтаксического анализа стандартный ввод как SCSS.

$ echo "h1 {font-size: 40px}" | sass --scss
h1 {
  font-size: 40px;
}

–sourcemap permalink--sourcemap

Эта опция контролирует, как Sass генерирует исходные карты, то есть файлы, которые сообщают браузерам или другим инструментам, использующим CSS, как этот CSS соответствует файлам Sass, из которых он был сгенерирован. Они позволяют просматривать и даже редактировать ваши файлы Sass в браузерах. Смотрите инструкции по использованию исходных карт в Chrome и Firefox. Имеет четыре возможных значения:

  • auto (по умолчанию) использует относительные URL-адреса для ссылки с исходной карты на таблицы стилей Sass, где это возможно, и абсолютные URL-адреса file: в противном случае.
  • file всегда использует абсолютные абсолютные URL-адреса file: для ссылки с исходной карты на таблицы стилей Sass.
  • inline включает текст стилей Sass напрямую в исходную карту.
  • none вообще не генерирует исходные карты.
​# Generates a URL like "../sass/style.scss".
$ sass --sourcemap=auto sass/style.scss css/style.css

​# Generates a URL like "file:///home/style-wiz/sassy-app/sass/style.scss".
$ sass --sourcemap=file sass/style.scss css/style.css

​# Includes the full text of sass/style.scss in the source map.
$ sass --sourcemap=inline sass/style.scss css/style.css

​# Doesn't generate a source map.
$ sass --sourcemap=none sass/style.scss css/style.css

–stdin permalink--stdin

Этот флаг (сокращенно -s) указывает Sass читать входной файл из стандартного ввода. Когда он передан, входной файл не может быть передан.

$ echo -e 'h1\n  font-size: 40px' | sass --stdin
h1 {
  font-size: 40px;
}

Флаг --stdin нельзя использовать с режимом многие-ко-многим.

–default-encoding permalink--default-encoding

Эта опция (сокращенно -E) управляет кодировкой символов по умолчанию, которую Sass будет использовать для загрузки исходных файлов, которые не явно указывают кодировку символов. По умолчанию используется кодировка операционной системы по умолчанию.

$ sass --default-encoding=Shift-JIS style.scss style.css

–unix-newlines permalink--unix-newlines

Этот флаг указывает Sass генерировать выходные файлы, строки которых разделены символом U+000A LINE FEED, в отличие от операционной системы по умолчанию (в Windows это U+000D CARRIAGE RETURN, за которым следует U+000A LINE FEED). Это всегда верно для систем, в которых по умолчанию используются символы новой строки в стиле Unix.

$ sass --unix-newlines style.scss style.css

–debug-info permalink--debug-info

Этот флаг (сокращенно -g) заставляет Sass выдавать фиктивные запросы @media, которые указывают, где каждое правило стиля было определено в исходной таблице стилей.

⚠️ Внимание!

Этот флаг существует только для обратной совместимости. Исходные карты теперь являются рекомендуемым способом сопоставления CSS обратно с Sass, который его сгенерировал.

$ sass --debug-info style.scss
@media -sass-debug-info{filename{font-family:file\:\/\/\/home\/style-wiz\/sassy-app\/style\.scss}line{font-family:\000031}}
h1 {
  font-size: 40px; }

–line-comments permalink--line-comments

Этот флаг (также доступный как --line-numbers, сокращенно -l) заставляет Sass генерировать комментарии для каждого правила стиля, которые указывают, где каждое правило стиля было определено в исходной таблице стилей.

$ sass --line-numbers style.scss
/* line 1, style.scss */
h1 {
  font-size: 40px; }

Другие опции permalinkДругие опции

–interactive permalink--interactive

Этот флаг (сокращенно -i) указывает Sass работать в интерактивном режиме, где вы можете написать SassScript-выражения и увидеть их результаты. Интерактивный режим также поддерживает переменные.

$ sass --interactive
>> 1px + 1in
97px
>> $map: ("width": 100px, "height": 70px)
("width": 100px, "height": 70px)
>> map-get($map, "width")
100px

–check permalink--check

Этот флаг (сокращенно -c) указывает Sass проверять, что синтаксис его входного файла действителен, не выполняя этот файл. Если синтаксис действителен, он завершается со статусом 0. Его нельзя использовать в режиме многие-ко-многим.

$ sass --check style.scss

–precision permalink--precision

Эта опция сообщает Sass, сколько цифр точности использовать при выводе десятичных чисел.

$ echo -e 'h1\n  font-size: (100px / 3)' | sass --precision=20
h1 {
  font-size: 33.333333333333336px; }

–cache-location permalink--cache-location

Эта опция сообщает Sass, где хранить свой кеш проанализированных файлов, чтобы он мог работать быстрее в будущих вызовах. По умолчанию это .sass-cache.

$ sass --cache-location=/tmp/sass-cache style.scss style.css

–no-cache permalink--no-cache

Этот флаг (сокращенно -C) говорит Sass не кэшировать проанализированные файлы вообще.

$ sass --no-cache style.scss style.css

–trace permalink--trace

Этот флаг указывает Sass напечатать полную трассировку стека Ruby при обнаружении ошибки. Команда Sass использует его для отладки ошибок.

Traceback (most recent call last):
        25: from /usr/share/gems/sass/bin/sass:13:in `<main>'
        24: from /usr/share/gems/sass/lib/sass/exec/base.rb:18:in `parse!'
        23: from /usr/share/gems/sass/lib/sass/exec/base.rb:50:in `parse'
        22: from /usr/share/gems/sass/lib/sass/exec/sass_scss.rb:63:in `process_result'
        21: from /usr/share/gems/sass/lib/sass/exec/sass_scss.rb:396:in `run'
        20: from /usr/share/gems/sass/lib/sass/engine.rb:290:in `render'
        19: from /usr/share/gems/sass/lib/sass/engine.rb:414:in `_to_tree'
        18: from /usr/share/gems/sass/lib/sass/scss/parser.rb:41:in `parse'
        17: from /usr/share/gems/sass/lib/sass/scss/parser.rb:137:in `stylesheet'
        16: from /usr/share/gems/sass/lib/sass/scss/parser.rb:697:in `block_contents'
        15: from /usr/share/gems/sass/lib/sass/scss/parser.rb:707:in `block_child'
        14: from /usr/share/gems/sass/lib/sass/scss/parser.rb:681:in `ruleset'
        13: from /usr/share/gems/sass/lib/sass/scss/parser.rb:689:in `block'
        12: from /usr/share/gems/sass/lib/sass/scss/parser.rb:697:in `block_contents'
        11: from /usr/share/gems/sass/lib/sass/scss/parser.rb:708:in `block_child'
        10: from /usr/share/gems/sass/lib/sass/scss/parser.rb:743:in `declaration_or_ruleset'
         9: from /usr/share/gems/sass/lib/sass/scss/parser.rb:820:in `try_declaration'
         8: from /usr/share/gems/sass/lib/sass/scss/parser.rb:1281:in `rethrow'
         7: from /usr/share/gems/sass/lib/sass/scss/parser.rb:807:in `block in try_declaration'
         6: from /usr/share/gems/sass/lib/sass/scss/parser.rb:999:in `value!'
         5: from /usr/share/gems/sass/lib/sass/scss/parser.rb:1161:in `sass_script'
         4: from /usr/share/gems/sass/lib/sass/script/parser.rb:68:in `parse'
         3: from /usr/share/gems/sass/lib/sass/script/parser.rb:855:in `assert_expr'
         2: from /usr/share/gems/sass/lib/sass/script/lexer.rb:240:in `expected!'
         1: from /usr/share/gems/sass/lib/sass/scss/parser.rb:1305:in `expected'
test.scss:1: Invalid CSS after "h1 {font-size: ": expected expression (e.g. 1px, bold), was "}" (Sass::SyntaxError)

–quiet permalink--quiet

Этот флаг (сокращенно -q) указывает Sass не выдавать никаких предупреждений при компиляции. По умолчанию Sass выдает предупреждения при использовании устаревших функций или при обнаружении правила @warn. Он также отключает правило @debug.

$ sass --quiet style.scss style.css