reactjs CSS模块类在开发中工作,但在生产中被重写

cgh8pdjw  于 4个月前  发布在  React
关注(0)|答案(1)|浏览(63)

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有些陌生,所以我希望在这个问题上有任何见解。

tpxzln5u

tpxzln5u1#

因此,正如ali.zabetpour所指出的那样,问题与构建后某些外部库的样式优先于自定义样式有关,在本例中,Material ui/Mui。这里是Mui文档的链接,详细解释了这一点,并提供了使用其StyledEngineProvider组件的解决方案,解决了我的问题:https://mui.com/material-ui/guides/interoperability/#css-injection-order-3

相关问题