Dart Sass 命令行 界面

用法用法永久链接

Dart Sass 可执行文件可以以两种 模式之一调用。

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

sass <input.scss> [output.css]

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

如果输入文件的扩展名为 .scss,则将其解析为 SCSS,如果其扩展名为 .sass,则将其解析为 缩进语法,如果其扩展名为 .css,则将其解析为 普通 CSS。如果它没有这三种扩展名之一,或者它来自标准输入,则默认情况下将其解析为 SCSS。这可以通过 --indented 标志 进行控制。

可以将特殊字符串 - 传递到输入文件的位置,以告诉 Sass 从 标准输入 读取输入文件。除非传递了 --indented 标志,否则 Sass 默认情况下会将其解析为 SCSS

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

兼容性
Dart Sass
自 1.4.0 起
sass [<input.scss>:<output.css>] [<input/>:<output/>]...

多对多模式将一个或多个输入文件编译到一个或多个输出文件。输入与输出之间用冒号分隔。它还可以将目录中的所有 Sass 文件编译到另一个 目录中具有相同名称的 CSS 文件。

​# Compiles style.scss to style.css.
$ sass style.scss:style.css

​# Compiles light.scss and dark.scss to light.css and dark.css.
$ sass light.scss:light.css dark.scss:dark.css

​# Compiles all Sass files in themes/ to CSS files in public/css/.
$ sass themes:public/css

当编译整个目录时,Sass 会忽略名称以 _ 开头的 部分文件。可以使用部分文件将样式表分离,而不会创建一堆不必要的输出 文件。

选项选项永久链接

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

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

--stdin–stdin 永久链接

此标志是告诉 Sass 从 标准输入 读取其输入文件的另一种方式。当它被传递时,不允许传递任何输入文件。

$ echo "h1 {font-size: 40px}" | sass --stdin h1.css
$ echo "h1 {font-size: 40px}" | sass --stdin
h1 {
  font-size: 40px;
}

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

--indented–indented 永久链接

此标志告诉 Sass 将输入文件解析为 缩进语法。如果它在 多对多模式 中使用,则所有输入文件都将解析为缩进语法,尽管它们 使用 的文件将按通常方式确定其语法。反之,--no-indented 可用于强制所有输入文件解析为 SCSS

--indented 标志主要在输入文件来自 标准输入 时有用,因此无法自动确定其语法。

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

--load-path–load-path 永久链接

此选项(缩写为 -I)为 Sass 添加了一个额外的 加载路径,用于查找样式表。它可以传递多次以提供多个加载路径。早期的加载路径将优先于后面的 路径。

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

--pkg-importer=node–pkg-importer=node 永久链接

兼容性
Dart Sass
自 1.71.0 起

此选项(缩写为 -p node)将 Node.js pkg: 导入程序 添加到加载路径的末尾,以便样式表可以使用 Node.js 模块解析 算法加载依赖项。

将来可能会添加对其他内置 pkg: 导入程序的支持。

$ sass --pkg-importer=node style.scss style.css

--style–style 永久链接

此选项(缩写为 -s)控制生成 CSS 的输出样式。Dart Sass 支持两种输出 样式

  • expanded(默认)将每个选择器和声明写入其自己的 行。
  • compressed 删除尽可能多的额外字符,并将整个样式表写入单行 
$ sass --style=expanded style.scss
h1 {
  font-size: 40px;
}

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

--no-charset–no-charset 永久链接

兼容性
Dart Sass
自 1.19.0 起

此标志告诉 Sass 不要发出 @charset 声明或 UTF-8 字节序标记。默认情况下,或者如果传递了 --charset,Sass 将在样式表包含任何非-ASCII 字符时插入 @charset 声明(在展开输出模式下)或字节序标记(在压缩输出模式下)。

$ echo 'h1::before {content: "👭"}' | sass --no-charset
h1::before {
  content: "👭";
}

$ echo 'h1::before {content: "👭"}' | sass --charset
@charset "UTF-8";
h1::before {
  content: "👭";
}

--error-css–error-css 永久链接

兼容性
Dart Sass
自 1.20.0 起

此标志告诉 Sass 在编译过程中发生错误时是否发出 CSS 文件。此 CSS 文件在注释中和 body::beforecontent 属性中描述错误,以便您可以在浏览器中看到错误消息,而无需切换回 终端。

默认情况下,如果要编译到磁盘上的至少一个文件(而不是标准输出),则会启用错误 CSS。您可以显式传递 --error-css 以在编译到标准输出时启用它,或者传递 --no-error-css 以在所有地方禁用它。当它被禁用时,--update 标志--watch 标志 会在发生错误时删除 CSS 文件。

$ sass --error-css style.scss style.css
/* Error: Incompatible units em and px.
 *   ,
 * 1 | $width: 15px + 2em;
 *   |         ^^^^^^^^^^
 *   '
 *   test.scss 1:9  root stylesheet */

body::before {
  font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
      "Droid Sans Mono", monospace, monospace;
  white-space: pre;
  display: block;
  padding: 1em;
  margin-bottom: 1em;
  border-bottom: 2px solid black;
  content: "Error: Incompatible units em and px.\a   \2577 \a 1 \2502  $width: 15px + 2em;\a   \2502          ^^^^^^^^^^\a   \2575 \a   test.scss 1:9  root stylesheet";
}
Error: Incompatible units em and px.
  ╷
1 │ $width: 15px + 2em;
  │         ^^^^^^^^^^
  ╵
  test.scss 1:9  root stylesheet

--update–update 永久链接

兼容性
Dart Sass
自 1.4.0 起

如果传递了 --update 标志,Sass 将只编译其依赖项比相应 CSS 文件生成的日期更新的样式表。在更新样式表时,它还会打印状态消息。

$ sass --update themes:public/css
Compiled themes/light.scss to public/css/light.css.

源映射源映射永久链接

兼容性
Dart Sass
自 1.3.0 起

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

Dart Sass 默认情况下为它发出的每个 CSS 文件生成源映射。

--no-source-map–no-source-map 永久链接

如果传递了 --no-source-map 标志,Sass 不会生成任何源映射。它不能与其他源映射 选项一起传递。

$ sass --no-source-map style.scss style.css

--source-map-urls–source-map-urls 永久链接

此选项控制 Sass 生成的源映射如何链接回生成 CSS 的 Sass 文件。Dart Sass 支持两种类型的 URL

  • relative(默认)使用源映射文件位置到 Sass 源 文件位置的相对 URL。
  • absolute 使用 Sass 源文件的绝对 file: URL。请注意,绝对 URL 仅在编译 CSS 的同一台计算机上有效。
​# Generates a URL like "../sass/style.scss".
$ sass --source-map-urls=relative sass/style.scss css/style.css

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

--embed-sources–embed-sources 永久链接

此标志告诉 Sass 将生成 CSS 的 Sass 文件的整个内容嵌入源映射中。这可能会产生非常大的源映射,但它保证无论如何提供 CSS,源代码都可以在任何计算机上使用。

$ sass --embed-sources sass/style.scss css.style.css

--embed-source-map–embed-source-map 永久链接

此标志告诉 Sass 将源映射文件的内容嵌入生成 CSS 中,而不是创建单独的文件并从 CSS 中链接到它。

$ sass --embed-source-map sass/style.scss css.style.css

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

--watch–watch 永久链接

兼容性
Dart Sass
自 1.6.0 起

此标志(缩写为-w)的行为类似于--update标志,但在完成第一轮编译后,Sass 会保持打开状态,并在样式表或其依赖项发生变化时继续编译样式表。 

Sass 仅监视您在命令行中直接传递的目录、您在命令行中传递的文件名的父目录以及加载路径。它不会根据文件的@import/@use/ @forward 规则监视其他目录。

$ sass --watch themes:public/css
Compiled themes/light.scss to public/css/light.css.

​# Then when you edit themes/dark.scss...
Compiled themes/dark.scss to public/css/dark.css.

--poll–poll 链接

兼容性
Dart Sass
自 1.8.0 起

此标志只能与 --watch 一起传递,它告诉 Sass 定期手动检查源文件的更改,而不是依赖操作系统在发生更改时通知它。如果您正在远程驱动器上编辑 Sass,而操作系统的通知系统不起作用,则可能需要这样做。 

$ sass --watch --poll themes:public/css
Compiled themes/light.scss to public/css/light.css.

​# Then when you edit themes/dark.scss...
Compiled themes/dark.scss to public/css/dark.css.

--stop-on-error–stop-on-error 链接

兼容性
Dart Sass
自 1.8.0 起

此标志告诉 Sass 在检测到错误时立即停止编译,而不是尝试编译可能不包含错误的其他 Sass 文件。它在多对多模式 中特别有用。

$ sass --stop-on-error themes:public/css
Error: Expected expression.
   ╷
42 │ h1 {font-face: }
   │                ^
   ╵
  themes/light.scss 42:16  root stylesheet

--interactive–interactive 链接

兼容性
Dart Sass
自 1.5.0 起

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

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

--color–color 链接

此标志(缩写为 -c)告诉 Sass 发射终端颜色,而反向 --no-color 告诉它不要发射颜色。默认情况下,如果它看起来正在运行在一个支持 它们的终端上,它会发射颜色。

$ sass --color style.scss style.css
Error: Incompatible units em and px.
  
1 │ $width: 15px + 2em
           ^^^^^^^^^^
  
  style.scss 1:9  root stylesheet

$ sass --no-color style.scss style.css
Error: Incompatible units em and px.
  ╷
1 │ $width: 15px + 2em
  │         ^^^^^^^^^^
  ╵
  style.scss 1:9  root stylesheet

--no-unicode–no-unicode 链接

兼容性
Dart Sass
自 1.17.0 起

此标志告诉 Sass 仅发射 ASCII 字符到终端,作为错误消息的一部分。默认情况下,或者如果传递了 --unicode,Sass 会发射非ASCII 字符用于这些消息。此标志不会影响 CSS 输出。

$ sass --no-unicode style.scss style.css
Error: Incompatible units em and px.
  ,
1 | $width: 15px + 2em;
  |         ^^^^^^^^^^
  '
  test.scss 1:9  root stylesheet

$ sass --unicode style.scss style.css
Error: Incompatible units em and px.
  ╷
1 │ $width: 15px + 2em;
  │         ^^^^^^^^^^
  ╵
  test.scss 1:9  root stylesheet

--verbose–verbose 链接

此标志告诉 Sass 在编译时发射所有弃用警告。默认情况下,Sass 仅在使用弃用功能时为给定弃用类型发射五个警告,并静默所有超出 此范围的警告。

$ sass --verbose style.scss style.css

--quiet–quiet 链接

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

$ sass --quiet style.scss style.css

--quiet-deps–quiet-deps 链接

此标志告诉 Sass 不要发射来自依赖项的弃用警告。它认为任何通过加载路径 导入的任何文件都是“依赖项”。此标志不会影响@warn 规则@debug 规则

$ sass --load-path=node_modules --quiet-deps style.scss style.css

--fatal-deprecation–fatal-deprecation 链接

兼容性
Dart Sass
自 1.59.0 起

此选项告诉 Sass 将特定类型的弃用警告视为错误。例如,此命令告诉 Sass 将 / 作为除法的弃用警告视为错误

$ sass --fatal-deprecation=slash-div style.scss style.css
Error: Using / for division outside of calc() is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div(4, 2) or calc(4 / 2)

More info and automated migrator: /documentation/breaking-changes/slash-div

This is only an error because you've set the slash-div deprecation to be fatal.
Remove this setting if you need to keep using this feature.
  ╷
1 │ a { b: (4/2); }
  │         ^^^
  ╵
  style.scss 1:9  root stylesheet

以下弃用 ID 可以传递到此 选项

ID弃用时间描述
call-string0.0.0直接将字符串传递给 meta.call()。
elseif1.3.2@elseif。
moz-document1.7.2@-moz-document。
relative-canonical1.14.2使用相对规范 URL 进行导入。
new-global1.17.2使用 !global 声明新的变量。
color-module-compat1.23.0在纯 CSS 函数中使用颜色模块函数。
slash-div1.33.0/ 运算符用于除法。
bogus-combinators1.54.0前导、尾随和重复组合器。
strict-unary1.55.0模糊的 + 和 - 运算符。
function-units1.56.0将无效单位传递给内置函数。
duplicate-var-flags1.62.0对一个变量多次使用 !default 或 !global。
null-alpha1.62.3JS API 中将 null 作为 alpha 传递。
abs-percent1.65.0将百分比传递给 Sass abs() 函数。
fs-importer-cwd1.73.0使用当前工作目录作为隐式加载路径。
css-function-mixin1.76.0以 – 开头的函数和混入名称。
mixed-decls1.77.7嵌套规则之后或之间的声明。
feature-exists1.78.0meta.feature-exists
color-4-api1.79.0内置 sass:color 函数的某些用法。
color-functions1.79.0使用全局颜色函数而不是 sass:color。
legacy-js-api1.79.0旧版 JS API

或者,您可以传递一个 Dart Sass 版本,将该版本中存在的任何弃用都视为错误。例如,--fatal-deprecation=1.33.0 会将表格中所有弃用(包括 slash-div)视为错误,但将任何更新的弃用视为 警告。

--future-deprecation–future-deprecation 链接

兼容性
Dart Sass
自 1.59.0 起

此选项告诉 Sass 尽早选择加入未来的弃用警告类型,即使弃用尚未生效,也会发射警告。此选项可以与 --fatal-deprecation 结合使用,以针对未来 弃用发射错误而不是警告。

$ sass --future-deprecation=import style.scss style.css
Deprecation Warning on line 1, column 9 of style.scss:
Sass @import rules will be deprecated in the future.
Remove the --future-deprecation=import flag to silence this warning for now.
  ╷
1 │ @import 'dependency';
  │         ^^^^^^^^^^^^
  ╵

以下弃用 ID 可以传递到此 选项

ID描述
import@import 规则。
global-builtin在 sass: 模块中可用的全局内置函数。

--silence-deprecation–silence-deprecation 链接

兼容性
Dart Sass
自 1.74.0 起

此选项告诉 Sass 静默特定类型的弃用警告,如果您希望暂时忽略弃用。--fatal-deprecation 部分中列出的任何弃用都可以在这里传递,但传递版本不受 支持。

$ sass --silence-deprecation=slash-div style.scss style.css

--trace–trace 链接

此标志告诉 Sass 在遇到错误时打印完整的 Dart 或 JavaScript 堆栈跟踪。它由 Sass 团队用于调试 错误。

$ sass --trace style.scss style.css
Error: Expected expression.
   ╷
42 │ h1 {font-face: }
   │                ^
   ╵
  themes/light.scss 42:16  root stylesheet

package:sass/src/visitor/evaluate.dart 1846:7                        _EvaluateVisitor._addExceptionSpan
package:sass/src/visitor/evaluate.dart 1128:12                       _EvaluateVisitor.visitBinaryOperationExpression
package:sass/src/ast/sass/expression/binary_operation.dart 39:15     BinaryOperationExpression.accept
package:sass/src/visitor/evaluate.dart 1097:25                       _EvaluateVisitor.visitVariableDeclaration
package:sass/src/ast/sass/statement/variable_declaration.dart 50:15  VariableDeclaration.accept
package:sass/src/visitor/evaluate.dart 335:13                        _EvaluateVisitor.visitStylesheet
package:sass/src/visitor/evaluate.dart 323:5                         _EvaluateVisitor.run
package:sass/src/visitor/evaluate.dart 81:10                         evaluate
package:sass/src/executable/compile_stylesheet.dart 59:9             compileStylesheet
package:sass/src/executable.dart 62:15                               main

--help–help 链接

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

$ sass --help
Compile Sass to CSS.

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

...

--version–version 链接

此标志打印 Sass 的当前版本。

$ sass --version
1.79.4