# Discourse 已迁移至 Dart Sass

**URL:** <https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461>\
**Category:** Announcements\
**Created:** [2023年二月8日 14:01 UTC](https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461 "2023-02-08T14:01:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2023年二月8日 14:01 UTC](https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461/1 "2023-02-08T14:01:30Z")

</div>

我们刚刚对 Discourse 的 Sass 编译器流水线进行了重大升级，从已弃用的 [libsass](https://github.com/sass/libsass) 迁移到了持续维护的 [Dart Sass](https://sass-lang.com/dart-sass)。

**这是一次无缝迁移，升级后您的网站不应发生任何变化** 。 在极少数情况下如果出现问题，请继续阅读。

### 致开发者 & 设计师的说明

在迁移过程中，我们审查了所有开源 [插件](https://github.com/discourse/all-the-plugins) 和 [主题](https://github.com/discourse/all-the-themes)，确保它们在新流水线中仍能正常工作，并对任何编译警告进行了修改/提交 PR 以进行处理。

### 版本详情

此次更新使我们

从：

- sassc 2.0.1（2019 年 2 月）
- libsass 3.5.2（2018 年 5 月）

变为：

- dart-sass 1.58（2023 年 1 月）

此更新应用了以下弃用变更：

> 这些破坏性变更即将推出或最近已发布：
> 
> [函数对允许的单位更加严格](https://sass-lang.com/documentation/breaking-changes/function-units)，自 Dart Sass 1.32.0 起生效。
> 
> [带有无效组合器的选择器将无效](https://sass-lang.com/documentation/breaking-changes/bogus-combinators)，自 Dart Sass 1.54.0 起生效。
> 
> [/ 正从除法运算变为列表分隔符](https://sass-lang.com/documentation/breaking-changes/slash-div)，自 Dart Sass 1.33.0 起生效。
> 
> [解析 @-moz-document 的特殊语法将无效](https://sass-lang.com/documentation/breaking-changes/moz-document)，自 Dart Sass 1.7.2 起生效。
> 
> [复合选择器无法被扩展](https://sass-lang.com/documentation/breaking-changes/extend-compound)，在 Dart Sass 1.0.0 和 Ruby Sass 4.0.0 中已如此规定。

### 常见问题解答

**此次升级没有造成硬性破坏性变更，因此 99% 的主题都能正常工作。**

如果您在未使用任何自定义主题的情况下运行 Discourse，则没有任何变化。下次您升级（或由您的托管公司升级）时，这将在后台自动完成。

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

如果您使用的是 #official #Customization > Theme 和/或许多 #Customization > Theme component，我们已经使它们与新 Sass 版本兼容。

如果您的自定义主题出现故障，请与我们分享，我们将协助修复。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2023年二月8日 14:02 UTC](https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461/2 "2023-02-08T14:02:35Z")

</div>

> [@Falco](#):
>
> [Compound selectors could not be extended](https://sass-lang.com/documentation/breaking-changes/extend-compound) in Dart Sass 1.0.0 and Ruby Sass 4.0.0.

😅 CW 和 Multilingual 都因为这个而中断，但已得到修复。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2023年二月8日 14:35 UTC](https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461/3 "2023-02-08T14:35:04Z")

</div>

谢谢你的提醒，看起来 sass-migrator 并不支持这个 🤦‍♂️。我现在正在查找相关实例。

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

---

<div class="post-metadata">

**Author:** ![Planktro\_Neum](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/planktro_neum/32/221598_2.png) [@Planktro\_Neum](https://meta.discourse.org/u/Planktro_Neum)\
**Post date:** [2023年二月9日 07:59 UTC](https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461/4 "2023-02-09T07:59:06Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)\
**Post date:** [2023年二月9日 08:48 UTC](https://meta.discourse.org/t/discourse-moved-to-dart-sass/254461/5 "2023-02-09T08:48:08Z")

</div>

> [@Falco](#):
>
> broken

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

```plaintext
Discourse::ScssError: Error: Expected whitespace

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

```
