我有一个_color.scss
文件,其中包含400种颜色作为变量。我喜欢20个组件,它们的风格需要这些颜色变量。
我使用SCSS + CSS模块构建我的样式。截至目前,我已在每个组件的_color.scss
中导入此style.scss
。
示例:
component1.scss
@import "color.scss";
component2.scss
@import "color.scss";
component3.scss
@import "color.scss";
以前,当我使用SCSS独立版时,我会将color.scss
导入我的index.scss
并导入其下的所有其他样式。这样,变量将在所有组件中可用。
示例:
//index.scss
@import "color.scss";
@import "component1.scss";
@import "component2.scss";
@import "component3.scss";
现在,_color.scss
下的所有变量都可以在component1.scss
,component2.scss
和component3.scss
下使用。
有没有办法用CSS Modules + SCSS
做类似的事情?一个声明全局变量的地方?
答案 0 :(得分:3)
我现在使用的方式看起来很干净。所以,我将它分享给所有人。
这将包括@import
所有.scss
个文件,使用scss
时所有css modules
个文件中的变量和mixin可用。
webpack@2.x.x config
...
module: {
rules: [
{
test: /\.scss$/,
loaders: [
'style-loader',
'css-loader?modules&importLoaders=1&localIdentName=[path][name]__[local]__[hash:base64:10]',
'sass-loader',
'sass-resources-loader',
'import-glob-loader',
'postcss-loader',
],
},
},
plugins: [
new webpack.LoaderOptionsPlugin({
options: {
postcss: [
autoprefixer(),
],
sassResources: [
'./app/constants/_style-variables.scss', //include your scss imports here
],
context: path.resolve(__dirname, '../../')
}
})
]
...