红宝石萨斯

Head️抬头!

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将忽略名称以开头的部分文件_。您可以使用partials分离样式表,而无需创建一堆不必要的输出文件。

多对多模式将仅编译样式表,这些样式表的依赖性已比生成相应的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

此选项(缩写为-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

此选项(缩写-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

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

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

Description:
  Converts SCSS or Sass files to CSS.

...

–版本永久链接--version

该标志显示Sass的当前版本。

$ sass --version

观看和更新永久链接观看和更新

这些选项影响多对多模式

–观看固定链接--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

该标志(只能与一起传递)--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

即使所有参数都不是冒号分隔的对,此标志也会启用多对多模式

$ 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

该标志只能在多对多模式下传递。它告诉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如何与生成CSS的Sass文件相对应。它们使您可以在浏览器中查看甚至编辑您的Sass文件。请参阅有关在ChromeFirefox中使用源地图的说明。它具有四个可能的值:

  • auto(默认设置)使用相对URL(如果可能)从源映射链接到Sass样式表, 否则使用绝对file:URL
  • file始终使用绝对绝对file:URL从源映射链接到Sass样式表。
  • inline 在源地图中直接包含Sass stylehseets的文本。
  • 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

此选项(缩写-E)控制的默认编码字符  是Sass将使用不加载源文件明确指定一个字符编码。它默认为操作系统的默认编码。

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

–unix-newlines永久链接--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永久链接--debug-info

此标志(缩写为-g)使Sass发出虚拟@media查询,以指示每个样式规则在源stylehseet中定义的位置。

Head️抬头!

该标志仅用于向后兼容。现在,建议使用源映射将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

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

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

其他选项永久链接其他选项

–交互式固定链接--interactive

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

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

–检查固定链接--check

该标志(缩写-c)告诉Sass在不执行该文件的情况下验证其输入文件的语法是否有效。如果语法有效,则它以状态 0 退出。不能在多对多模式下使用

$ sass --check style.scss

–精密固定链接--precision

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

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

–缓存位置永久链接--cache-location

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

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

–no-cache永久链接--no-cache

该标志(缩写-C)告诉Sass根本不缓存已解析的文件。

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

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

该标志(缩写-q)告诉Sass编译时不发出任何警告。默认情况下,当使用不赞成使用的功能或遇到@warn规则时,Sass会发出警告。这也使@debug规则无语。

$ sass --quiet style.scss style.css