Ruby Sass 命令行 界面
⚠️ 注意!
Ruby Sass 已结束生命周期 现在完全没有维护。请尽快切换到 Dart Sass 或 LibSass。
用法用法 永久链接
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 永久链接
$ echo "h1 {font-size: 40px}" | sass --scss
h1 {
font-size: 40px;
}
--sourcemap
–sourcemap 永久链接
此选项控制 Sass 如何生成源映射,源映射是告诉浏览器或其他使用 CSS 的工具如何将该 CSS 与生成它的 Sass 文件对应起来的文件。它们使您能够在浏览器中查看甚至编辑 Sass 文件。请参阅有关在 Chrome 和 Firefox 中使用源映射的说明。它有四个可能的 值
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