问题描述
我正在建立一个样式表较少的React / Antd项目。
虽然在webpack开发服务器上运行时一切正常,但是当我构建项目时,访问不同页面时似乎加载了相同的样式表。
例如,我在第1页和第2页中设置了Card组件的样式。 当我访问第1页时,使用正确的声明顺序正确地设置了Card组件的样式:
.my-custom-card {
margin: 10px;
}
.ant-card {
margin: 0;
}
然后,当我访问第2页并返回第1页时,将加载相同的蚂蚁卡样式表。声明顺序现在变为:
.ant-card {
margin: 0;
}
.my-custom-card {
margin: 10px;
}
.ant-card {
margin: 0;
}
,自定义类声明的边距将被新加载的蚂蚁卡样式表覆盖。
为澄清起见,唯一包含.ant-card的样式表来自antd包。此样式表已从同一捆绑软件加载两次。
仅当我构建项目时,这不会在webpack-dev-server上发生,所以我倾向于在构建过程中潜在的问题。
解决方法
Webpack开发服务器在本地提供原始文件和资产。它不会使用捆绑的文件。创建捆绑包时,如果样式冲突,则最好使用容器css类来锁定css样式。
.page1-container {
.ant-card {
margin: 10px;
}
}
}
.page2-container {
.ant-card {
margin: 20px;
}
}
}