重大变更:媒体查询级别 4
Sass 已添加对 CSS 媒体查询级别 4 规范的支持。这最初与一些 Sass 特定语法冲突,因此该语法已被弃用,现在将根据 CSS 标准进行解释。
- Dart Sass
- 从 1.56.0 开始
- LibSass
- ✗
- Ruby Sass
- ✗
由于 Sass 在带括号的媒体条件中支持几乎所有 Sass 表达式,因此添加了对媒体查询级别 4 的完全支持后,一些结构的含义发生了变化。具体来说
-
@media (not (foo))
历来被 Sass 解释为@media (#{not (foo)})
,因此编译为@media (false)
。 -
@media ((foo) and (bar))
和@media ((foo) or (bar))
同样被解释为 SassScript 的逻辑运算符,分别编译为@media (bar)
和@media (foo)
。
幸运的是,这些情况在实践中很少出现。
过渡期过渡期永久链接
- Dart Sass
- 从 1.54.0 开始
- LibSass
- ✗
- Ruby Sass
- ✗
首先,我们针对之前存在歧义的情况发出了弃用警告。这些警告将提供有关如何保留现有行为或如何使用新 CSS 语法的建议。
如何屏蔽警告?如何屏蔽警告?永久链接
Sass 提供了一套强大的选项,用于管理您看到哪些弃用警告以及何时看到。
简洁模式和详细模式简洁模式和详细模式永久链接
默认情况下,Sass 在简洁模式下运行,在这种模式下,它只会打印每种类型的弃用警告五次,然后会屏蔽其他警告。这有助于确保用户知道何时需要注意即将发生的重大更改,而不会产生过多的控制台噪音。
如果您改为在详细模式下运行 Sass,它将打印遇到的所有弃用警告。这对于跟踪修复弃用时需要完成的剩余工作非常有用。您可以使用命令行上的 --verbose
标志 或 JavaScript API 中的 verbose
选项 启用详细模式。
⚠️ 注意!
从 JS API 运行时,Sass 不会在编译之间共享任何信息,因此默认情况下,它会在编译的每个样式表中打印五次警告。但是,您可以通过编写(或要求您最喜欢的框架的 Sass 插件的作者编写)一个自定义 Logger
来解决此问题,该 Logger
只对每个弃用打印五个错误,并且可以在多个编译之间共享。
屏蔽依赖项中的弃用屏蔽依赖项中的弃用永久链接
有时,您的依赖项会发出您无法解决的弃用警告。您可以使用命令行上的 --quiet-deps
标志 或 JavaScript API 中的 quietDeps
选项 屏蔽来自依赖项的弃用警告,同时仍对您的应用打印这些警告。
对于此标志的目的,“依赖项”是指任何样式表,而不是仅仅一系列来自入口点样式表的相对加载。这意味着来自加载路径的任何内容,以及大多数通过自定义导入程序加载的样式表。
屏蔽特定弃用屏蔽特定弃用永久链接
如果您知道某个特定的弃用对您来说不是问题,您可以使用命令行上的 --silence-deprecation
标志 或 JavaScript API 中的 silenceDeprecations
选项 屏蔽该特定弃用的警告。