如何在scss中使用js变量?

How to use js variable in scss?

在vite项目中,我在.env中定义了一个env变量:

VITE_THEME=1

我有一个 variables.scss 文件来定义一个变量:

$theme-color: red;

我可以在 js 中使用 import.meta.env.VITE_THEME 来获取 VITE_THEME,但现在我想在 variables.scss 中使用它来更改 theme-color,例如:

$theme-color: import.meta.env.VITE_THEME == 1 ? red : yellow;

我该怎么做?

在这种情况下,您应该使用 CSS-in-JS 库。 CSS 不是一种编程语言,您不应该只用它获取一些数据。或者,您可以有条件地在 JS 中的 body 标签中添加一个 class 并根据它在 CSS 中配置样式。有一些方法可以编译你的 SCSS 以便它从文件中获取一些数据,但它不会是反应性的。如果你只想改变一个元素,你也可以有条件地应用 classes 和 style 属性。