我的问题很简单。我喜欢在React中使用SCSS,但我避免了变量/mixin等。因为对我来说,在重建一些东西后修复所有的导入简直是噩梦(我有一个scss文件分别为每个组件)。
我发现我可以很容易地在React导入中创建绝对路径,例如:import "src/scss/variables"
现在我再次非常兴奋地学习SCSS可以提供的所有好东西。
所以我的问题是,如果我可以创建一个global.scss文件,并在整个应用程序中只使用这个文件,将样式导入到不同的SCSS文件。例如global.scss看起来像这样:
@use "variables"
@use "mixins"
@use "functions"
@forward "variables"
@forward "mixins"
@forward "functions"
在components.scss中,我只需要导入:
@use "src/scss/global"
.test {
background-color: global.$primary-color;
}
另一个问题是是否有可能全局变量只是导入到main.jsxprapp.jsx中,而不是自动在所有文件中使用?
1条答案
按热度按时间hsvhsicv1#
实际上,所有变量、mixin和函数都有一个文件是可能的。你分享的例子几乎是正确的,但你只需要使用
@forward
,而不是@use
:确保这三份文件是不完整的。
在
.jsx
中导入这个global.scss
文件是无用的,因为它不包含任何样式。但是,您可以做的是配置您的bundler将其自动导入到所有.scss
文件中。例如,如果你使用webpack和
sass-loader
,你可以使用选项additionalData
:如果你得到一个关于
@import loop
的错误,你需要排除全局样式文件,这样它们就不会自动导入:如果使用Vite,可以使用
css.preprocessorOptions
添加: