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::before
的 content
属性中描述错误,以便您可以在浏览器中看到错误消息,而无需切换回 终端。
默认情况下,如果要编译到磁盘上的至少一个文件(而不是标准输出),则会启用错误 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 文件。有关在 Chrome 和 Firefox 中使用源映射的说明,请参阅说明。
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-string | 0.0.0 | 直接将字符串传递给 meta.call()。 |
elseif | 1.3.2 | @elseif。 |
moz-document | 1.7.2 | @-moz-document。 |
relative-canonical | 1.14.2 | 使用相对规范 URL 进行导入。 |
new-global | 1.17.2 | 使用 !global 声明新的变量。 |
color-module-compat | 1.23.0 | 在纯 CSS 函数中使用颜色模块函数。 |
slash-div | 1.33.0 | / 运算符用于除法。 |
bogus-combinators | 1.54.0 | 前导、尾随和重复组合器。 |
strict-unary | 1.55.0 | 模糊的 + 和 - 运算符。 |
function-units | 1.56.0 | 将无效单位传递给内置函数。 |
duplicate-var-flags | 1.62.0 | 对一个变量多次使用 !default 或 !global。 |
null-alpha | 1.62.3 | 在 JS API 中将 null 作为 alpha 传递。 |
abs-percent | 1.65.0 | 将百分比传递给 Sass abs() 函数。 |
fs-importer-cwd | 1.73.0 | 使用当前工作目录作为隐式加载路径。 |
css-function-mixin | 1.76.0 | 以 – 开头的函数和混入名称。 |
mixed-decls | 1.77.7 | 嵌套规则之后或之间的声明。 |
feature-exists | 1.78.0 | meta.feature-exists |
color-4-api | 1.79.0 | 内置 sass:color 函数的某些用法。 |
color-functions | 1.79.0 | 使用全局颜色函数而不是 sass:color。 |
legacy-js-api | 1.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