解析样式表
Sass 样式表是经由 Unicode 编码序列解析而来的。 解析是直接进行的,没有转换为标记流(token stream)的过程。
输入代码的字符编码 permalink输入代码的字符编码
- Dart Sass
- ✗
- LibSass
- ✓
- Ruby Sass
- ✓
Compatibility:
Dart Sass 目前 只 支持 UTF-8 编码。因此,最安全的 做法是将所有 Sass 样式表都使用 UTF-8 编码。
通常情况下,一个文件最初只能作为字节序列使用, 然后将字节序列解码为 Unicode。Sass 执行解码的流程 如下:
如果字节序列以 U+FEFF 字节顺序开头,则表示是 UTF-8 或 UTF-16 编码,然后 使用对应的编码。
如果字节序列以纯 ASCII 字符串
@charset
开头,那么 Sass 使用 CSS 规则的第 2 步来确定编码,最终 determining the fallback encoding。否则,使用UTF-8。
解析错误 permalink解析错误
当 Sass 在样式表中遇到无效语法时,解析将失败, 并向用户展示错误信息,其中包含了无效语法的位置 以及错误的原因。
注意,这与 CSS 不同,CSS 规定了如何从大多数错误中恢复, 而不是立即失败。这是 SCSS 严格来说 不是CSS超集的少数情况之一。然而,对于 Sass 用户来说, 立即看到错误比让错误传导到 输出的 CSS 中有用的多。
解析错误所对应的位置可以通过特定于实现的 API 来访问。例如,在 Dart Sass 中,你可以访问 SassException.span
, 在 Node Sass 和 Dart Sass 的 JS API 中你可以访问 file
、line
和 column
属性。