Ruby Sass 命令行 界面

⚠️ 注意!

Ruby Sass 已结束生命周期 现在完全没有维护。请尽快切换到 Dart SassLibSass

用法用法 永久链接

Ruby Sass 可执行文件可以通过两种 模式调用。

一对一模式一对一模式 永久链接

sass [input.scss] [output.css]

一对一模式将单个输入文件 (input.scss) 编译到单个输出位置 (output.css)。如果没有传递输出位置,则编译后的 CSS 将打印到终端。如果没有传递输入输出,则 CSS 将从 标准输入 读取并打印到 终端。

如果输入文件的扩展名为 .scss,则将其解析为 SCSS;如果其扩展名为 .sass,则解析为 缩进语法。如果它没有这两个扩展名中的任何一个,或者它来自标准输入,则默认情况下将其解析为缩进语法。这可以通过 --scss 标志 来控制。

多对多模式多对多模式 永久链接

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 文件生成时间更新的样式表。它还会在更新 样式表时打印状态消息。

选项选项 永久链接

通用通用 永久链接

--load-path–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–require 永久链接

此选项(缩写为 -r)在运行 Sass 之前加载 Ruby gem。它可以用于将 Ruby 中定义的函数加载到您的 Sass 环境中。

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

--compass–compass 永久链接

此标志加载 Compass 框架,并使它的 mixin 和函数可在 Sass 中使用。

$ sass --compass style.scss style.css

--style–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–help 永久链接

此标志(缩写为 -h-?)打印此 文档的摘要。

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

Description:
  Converts SCSS or Sass files to CSS.

...

--version–version 永久链接

此标志打印 Sass 的当前版本 

$ sass --version
Sass 3.7.4

监视和更新监视和更新 永久链接

这些选项影响 多对多 模式

--watch–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–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–update 永久链接

此标志启用 多对多模式,即使没有一个参数是冒号分隔的 对。

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

--force–force 永久链接

此标志(缩写为 -f)只能在 多对多模式 中传递。它会导致 Sass 文件始终被编译为 CSS 文件,而不是只在源文件比 输出更新时才进行编译。

--force 标志不能与 --watch 标志 一起传递。

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

--stop-on-error–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.

输入和输出输入和输出 永久链接

这些选项控制 Sass 如何加载其输入文件以及如何生成输出 文件。

--scss–scss 永久链接

此标志告诉 Sass 将 标准输入 解析为 SCSS

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

--sourcemap–sourcemap 永久链接

此选项控制 Sass 如何生成源映射,源映射是告诉浏览器或其他使用 CSS 的工具如何将该 CSS 与生成它的 Sass 文件对应起来的文件。它们使您能够在浏览器中查看甚至编辑 Sass 文件。请参阅有关在 ChromeFirefox 中使用源映射的说明。它有四个可能的 

  • auto(默认)在可能的情况下使用相对 URL 从源映射链接到 Sass 样式表,并在其他情况下使用绝对 file: URL
  • file 始终使用绝对 file: URL 从源映射链接到 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–stdin 永久链接

此标志(缩写为 -s)告诉 Sass 从 标准输入 读取其输入文件。当它被传递时,不能传递任何输入文件 

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

--stdin 标志不能与 多对多 模式 一起使用。

--default-encoding–default-encoding permalink

此选项(缩写为-E)控制 Sass 用于加载未显式指定字符编码的源文件的默认字符编码。它默认为操作系统的默认编码。

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

--unix-newlines–unix-newlines permalink

此标志指示 Sass 生成其行以 U+000A LINE FEED 字符分隔的输出文件,而不是操作系统默认值(在 Windows 上,这是 U+000D CARRIAGE RETURN 后跟 U+000A LINE FEED)。在默认使用 Unix 风格换行符的系统上,它始终为真。

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

--debug-info–debug-info permalink

此标志(缩写为-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–line-comments permalink

此标志(也称为--line-numbers,缩写为-l)导致 Sass 为每个样式规则发出注释,以指示每个样式规则在源样式表中定义的位置。

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

其他选项Other Options permalink

--interactive–interactive permalink

此标志(缩写为-i)指示 Sass 在交互模式下运行,您可以在其中编写SassScript 表达式并查看其结果。交互模式还支持变量

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

--check–check permalink

此标志(缩写为-c)指示 Sass 确认其输入文件的语法是否有效,而无需执行该文件。如果语法有效,则以状态 0 退出。它不能在多对多模式中使用。

$ sass --check style.scss

--precision–precision permalink

此选项告诉 Sass 在发出十进制数字时使用多少位精度

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

--cache-location–cache-location permalink

此选项告诉 Sass 在哪里存储其解析文件的缓存,以便它可以在将来的调用中更快地运行。它默认为.sass-cache

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

--no-cache–no-cache permalink

此标志(缩写为-C)指示 Sass 不要完全缓存解析的文件。

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

--trace–trace permalink

此标志指示 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–quiet permalink

此标志(缩写为-q)指示 Sass 在编译时不发出任何警告。默认情况下,Sass 在使用弃用功能或遇到@warn 规则时会发出警告。它还会使@debug 规则静音。

$ sass --quiet style.scss style.css