gpt4 book ai didi

css - 为什么相同文件名时模块样式重叠

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:10 25 4
gpt4 key购买 nike

我尝试使用 Webpack 的 css-loader 插件分别为每个组件设置样式。但是当文件具有相同的名称(例如:'index.scss')并具有相同的属性(例如:'.container')时,它将结合两种样式,但在这种情况下我只需要一个。我该如何解决这个问题

这是我的 Webpack 配置:

rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
{
loader: 'style-loader',
options: {
insertAt: 'top',
sourceMap: true
}
},
{
// Handle import/ require css
// It help to css for each component
// https://github.com/webpack-contrib/css-loader#scope
loader: 'css-loader',
options: {
sourceMap: true ,
localIdentName: '[path][name]__[local]--[hash:base64:5]',
camelCase: true,

}
},
{
loader: 'postcss-loader',
options: {
sourceMap: true,
// minimize: true,
plugins: () => [
require('postcss-flexbugs-fixes'),
// Help to generate specific css for each component
// require('postcss-modules'),
autoprefixer({
browsers: [
'>1%',
'last 4 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway
],
flexbox: 'no-2009',
}),
],
}
},
{ loader: 'sass-loader', options: { sourceMap: true } },
],
},
]

例子:src/screen1/index.tsx

const styles = require('./index.scss')

const Dashboard = ({ children, url }: IDashboardPropsIn) => {
return (
<div className={styles.body}>
{children}
</div>
)
}

我有 2 个文件:src/screen2/index.scsssrc/screen1/index.scss以某种方式在类中,名称 body--[hash:64] 具有来自 2 个文件的两种样式

src/screen1/index.scss

:local {
.body {
grid-area: body;
background-color: $white;
}
}

src/screen2/index.scss

:local {
.body {
display: flex;
}
}

body--[hash:64] 的样式将是

grid-area: body;
background-color: $white;
display: flex;

但在这种情况下,我只导入文件 src/screen1/index.scss 例如

grid-area: body;
background-color: $white;

我该如何解决?

最佳答案

您没有在配置中指定 modules 选项

        {
// Handle import/ require css
// It help to css for each component
// https://github.com/webpack-contrib/css-loader#scope
loader: 'css-loader',
options: {
sourceMap: true ,
localIdentName: '[path][name]__[local]--[hash:base64:5]',
camelCase: true,
modules: true, // or 'local' | 'global' | false

}
},

docs 中阅读更多内容

关于css - 为什么相同文件名时模块样式重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54304797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com