Discourse迁移到Dart Sass

我们在 Discourse 中对 Sass 编译器管道进行了一次重大升级,从已弃用的 libsass 迁移到了维护中的 Dart Sass

这是一次无缝迁移,升级后您的网站应该不会有任何变化。万一出现问题,请继续阅读。

致开发者和设计师的说明

在迁移过程中,我们审查了所有开源的 插件主题,确保它们在新管道下都能正常工作,并进行了修改/提交 PR 以处理编译过程中的任何警告。

版本详情

我们从:

  • sassc 2.0.1 (2019 年 2 月)
  • libsass 3.5.2 (2018 年 5 月)

迁移到:

  • dart-sass 1.58 (2023 年 1 月)

此次更新应用了以下弃用:

这些重大更改即将来临或已于近期发布:

从 Dart Sass 1.32.0 开始,函数对允许的单位更加严格

从 Dart Sass 1.54.0 开始,具有无效组合符的选择器是无效的

从 Dart Sass 1.33.0 开始,/ 将从除法运算变为列表分隔符

从 Dart Sass 1.7.2 开始,解析 @-moz-document 的特殊语法将无效

复合选择器无法被扩展,在 Dart Sass 1.0.0 和 Ruby Sass 4.0.0 中。

问答

这次升级没有硬性破坏性更改,因此 99% 的主题都能正常工作。

如果您运行的 Discourse 没有自定义主题,则不会有任何变化。下次您升级时(或由您的托管公司升级时),此过程将在后台进行。

如果您使用的是 CDCK 托管服务并使用了我们为您开发的主题,我们已经将其与 Dart Sass 兼容。

如果您使用 official Theme 和/或一些 Theme component,我们已经使其与新的 Sass 版本兼容。

如果您的自定义主题损坏了,请与我们分享,我们将帮助修复它。

17 个赞

:sweat_smile: CW 和 Multilingual 都因为这个而中断,但已得到修复。

7 个赞

谢谢你的提醒,看起来 sass-migrator 并不支持这个 :man_facepalming:。我现在正在查找相关实例。

编辑:我曾担心这个问题,但在搜索了所有开源和闭源插件及主题中的这个错误后,我只在您提到的两个插件中发现了对 extend 的这种用法。

9 个赞

您好,早上好。自更新以来,我们的标题栏变大了,页面顶部至少有一英寸的空白。

编辑。
发现在 CSS 的标题部分有这个问题
其他的都是空白的,所以现在标题栏很完美了,但是我无法添加自定义背景。
谢谢。

3 个赞

不确定这是 CSS 的问题还是解析器的问题,但我觉得还是分享一下比较好。

Discourse::ScssError: Error: Expected whitespace

@media screen and(min-width: $breakpoint-sm) {
                 ^
5 个赞