解析

Sass样式表从Unicode代码点序列解析。它是直接解析的,不需要首先转换为令牌流。

输入代码的编码

兼容性:Dart Sass ✗|LibSass ✓|Ruby Sass ✓

Dart Sass目前只支持UTF-8编码。因此,将所有Sass样式表编码为UTF-8是最安全的。

通常情况下,一个文件最初只能作为字节序列使用,必须将其解码为Unicode。Sass的解码过程如下:

  • 如果字节序列以U+FEFF字节顺序标记的UTF-8或UTF-16编码开始,则使用相应的编码。
  • 如果字节序列以纯ASCII字符串@charset开始,那么Sass使用CSS算法的第2步确定编码,以确定fallback encoding
  • 否则,使用UTF-8。

解析错误

当Sass在样式表中遇到无效语法时,解析将失败,并向用户提供关于无效语法的位置和无效原因的信息。

注意,这与CSS不同,CSS指定如何从大多数错误中恢复,而不是立即失败。这是SCSS严格来说不是CSS超集的少数情况之一。然而,让Sass用户立即看到错误要比让错误通过CSS输出有用得多。

可以通过特定实现的api访问解析错误的位置。例如,在Dart Sass中,您可以访问SassException.span在Node Sass和Dart Sass的JS API中,您可以访问file、line、column属性。

上次更新: 2019-10-11 1:26:28 PM