重大变更:meta.feature-exists()
meta.feature-exists()
函数很长时间没有添加新功能,现在已弃用。用户应使用其他方法来确定新功能是否可用。
历史上,Sass 使用 meta.feature-exists()
函数(也称为全局 feature-exists()
函数)来允许作者在编译样式表时检测各种新语言功能是否可用。然而,随着时间的推移,事实证明,绝大多数新的 Sass 功能要么可以通过更直接的方式检测到,要么在检测时没什么用。
此函数现已弃用,将在 Dart Sass 2.0.0 中删除。由于 Dart Sass 现在是唯一官方支持的 Sass 实现,并且 Dart Sass 的所有版本都支持 meta.feature-exists()
支持的所有功能,因此可以安全地删除所有现有的使用。
许多新功能可以使用 meta.function-exists()
、meta.mixin-exists()
或 [meta.global-variable-exists()
] 进行检测。其他功能可以使用表达式级语法进行检测,例如使用 calc(1) == 1
来确定当前版本的 Sass 是否支持一流计算。
过渡期过渡期永久链接
- Dart Sass
- 自 1.78.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
首先,我们将为所有 feature-exists
的使用发出弃用警告。
在 Dart Sass 2.0.0 中,meta.feature-exists()
将不再存在。尝试调用它将抛出错误,并且尝试调用全局 feature-exists()
函数将被视为普通 CSS 函数调用。
我可以静默警告吗?我可以静默警告吗?永久链接
Sass 提供了一套强大的选项来管理您看到哪些弃用警告以及何时看到。
简洁和详细模式简洁和详细模式永久链接
默认情况下,Sass 在简洁模式下运行,它只会在打印每种类型的弃用警告五次后静默其他警告。这有助于确保用户知道何时需要意识到即将发生的重大更改,而不会产生过多的控制台噪音。
如果您改为在详细模式下运行 Sass,它将打印它遇到的所有弃用警告。这对于跟踪修复弃用时要完成的剩余工作很有用。您可以使用命令行上的 --verbose
标志 或 JavaScript API 中的 verbose
选项 启用详细模式。
⚠️ 注意!
从 JS API 运行时,Sass 不会跨编译共享任何信息,因此默认情况下它会为编译的每个样式表打印五次警告。但是,您可以通过编写(或让您最喜欢的框架的 Sass 插件作者编写)一个自定义 Logger
来解决此问题,该日志程序只打印每个弃用五次错误,并且可以在多个编译之间共享。
静默依赖项中的弃用静默依赖项中的弃用永久链接
有时,您的依赖项会有您无法处理的弃用警告。您可以静默依赖项中的弃用警告,同时仍然为您的应用程序打印警告,方法是使用命令行上的 --quiet-deps
标志 或 JavaScript API 中的 quietDeps
选项。
就此标志而言,“依赖项”是指任何不只是从入口样式表进行一系列相对加载的样式表。这意味着任何来自加载路径的东西,以及大多数通过自定义导入器加载的样式表。
静默特定弃用静默特定弃用永久链接
如果您知道某个特定的弃用对您来说不是问题,则可以使用命令行上的 --silence-deprecation
标志 或 JavaScript API 中的 silenceDeprecations
选项 来静默该特定弃用的警告。