无法读取未定义的属性'@global'-NPM链接MUI组件

时间:2018-10-16 22:20:59

标签: reactjs npm webpack material-ui npm-link

我创建了许多React组件,这些组件包装了Material-UI组件并打包为NPM模块。

通过远程软件包npm install *name-of-package*或通过本地安装npm install ../*name-of-package*安装时,该模块可以正常工作。

但是,对于模块开发,我想使用npm link,以便可以在模块和站点目录中使用webpack --watch / webpack-dev-server等。

为此,我正在运行npm link在模块目录中创建符号链接,然后在站点目录中创建npm link *name-of-package*。 Webpack会按预期启动,但是我在浏览器中始终遇到与MUI的withStyles函数相关的错误:

Uncaught TypeError: Cannot read property '@global' of undefined指的是var rules = style[propKey];的{​​{1}}行。

其他诸如:function handleNestedGlobalContainerRule(rule)

从类似的帖子中我可以看出,这是在抱怨缺少The above error occurred in the <WithStyles(Typography)> component对象(该站点有一个声明主题对象的theme)。

任何人都可以建议为什么这可能适用于MuiThemeProvider而不是npm install吗?我似乎无法弄清楚这一点。

1 个答案:

答案 0 :(得分:0)

在检查了各种提交并阅读了@AstenMies的参考之后,我似乎已经解决了这个问题。或者至少我再也无法重现这个问题。

我不完全确定哪个确切的更改可以解决问题,但是如果有其他人发现自己在这种情况下,我将列出我所做的事情:

  • 正如@AstenMies的链接所指向的那样,我的theme对象中的属性未定义(尽管这并不能解决我的问题)
  • 确保模块和站点的React和React-DOM版本相同
  • 请勿混用您的yarn addnpm install的命令-混用程序包管理器可能导致不一致的情况
  • 如有疑问,请删除您的node_modules文件夹并重新安装。您也可以在npm cache clean这里避免任何缓存的鼻音