create react app/Material UI部署时的应用程序样式不同



我有一个不确定如何调试的错误。错误在于,我通过材质ui和常规CSS为create-react-app(Typescript(应用程序使用的样式在开发中表现得很好,但当我在线部署应用程序时,某些CSS属性的样式会有所不同(我只尝试过Heroku和Vercel(。当我开发时,该应用程序不会在控制台中显示任何错误或警告。我不知道为什么会发生这种情况,到目前为止我已经尝试了以下

  1. 多次阅读我的代码,每一步都要格外小心
  2. 在Chrome 85.0.4183.83(Linux,64位(上以匿名模式打开网站(开发和生产(
  3. 查看material ui的文档(material ui.com(和React文档,了解有关此方面的任何线索
  4. 在谷歌上搜索以前的此类问题

到目前为止,没有任何结果。有人能指引我朝正确的方向走吗?

部署后,我在Heroku上使用的构建包是mars众所周知的构建包,可在https://buildpack-registry.s3.amazonaws.com/buildpacks/mars/create-react-app.tgz。

为了方便起见,我在pastebin上包含了我的package.json

非常感谢你的帮助。

================编辑=============

我一直在尝试这些代码,问题似乎出在构建期间如何编译材料ui上。那些没有在开发中表现出来的问题,在生产中表现出来了。

例如,我注意到的最大的一件事是,如果您混合由材质ui组件提供的自定义样式道具标志,并使用classNamestyle添加您自己的样式,那么在构建时,这些后一种样式即使不是完全覆盖,也会被部分覆盖。

所以如果我做

import   React,
{ useRef }  from "react";
import {
Button,
makeStyle,
Theme
}           from "@material-ui/core";
/*
Start of functional component using memo
.
.
.
*/
const useClasses = useRef(makeStyle((theme : Theme) => { return {
buttonStyles:
{
backgroundColor: theme.palette.text.hint
}
}}));
const styles = useClasses.current();
<Button
color={"secondary"}
className={styles.buttonStyles}>
button text
</Button>
/*
.
.
.
*/

在开发中,该按钮将具有我在makeStyles中给定的backgroundColor,但在生产中,该属性将切换到secondary,如默认值为theme.palette.secondary.maincolor道具中给定的那样。

有时,即使在没有任何额外配置的情况下使用material ui中的组件也会导致问题。

如果这很重要的话,我还使用了lazySuspense的代码分割。

StackMatch你能链接你的github/gitlab回购吗?我想我可能知道问题出在哪里,但如果不了解您的开发环境是如何配置的,就无法确定。

相关内容

  • 没有找到相关文章

最新更新