bounty将在2天后过期。回答此问题可获得+50声望奖励。Atav32希望奖励现有答案。
我项目中的所有样式都是在css模块中定义的,直到最近我才注意到,在Nextjs生成的生产版本中,其中一些样式被其他样式覆盖(只有在同一个模块中定义时才有意义,但事实并非如此)。这会破坏我的应用程序的生产,但在开发中似乎一切正常。
下面是一个示例:
///mobile.module.css
.expandIcon {
width: 12px;
}
///mobile.tsx
import React from "react";
import styles from "./mobile.module.css";
import { NextPage } from "next";
import OpenInFullRoundedIcon from "@mui/icons-material/OpenInFullRounded";
const mobile: NextPage = () => {
return <OpenInFullRoundedIcon className={styles.expandIcon} />
};
export default mobile;
字符串
下面是这个类在开发中的加载方式:
的数据
下面是它在prod上被覆盖的方式:
的
更糟糕的是,重写我的类甚至没有在我的项目中定义。我对NextJs有些陌生,所以我希望在这个问题上有任何见解。
1条答案
按热度按时间tpxzln5u1#
因此,正如ali.zabetpour所指出的那样,问题与构建后某些外部库的样式优先于自定义样式有关,在本例中,Material ui/Mui。这里是Mui文档的链接,详细解释了这一点,并提供了使用其StyledEngineProvider组件的解决方案,解决了我的问题:https://mui.com/material-ui/guides/interoperability/#css-injection-order-3