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



我创建了许多 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指的是function handleNestedGlobalContainerRule(rule)var rules = style[propKey];线。

其他如:The above error occurred in the <WithStyles(Typography)> component

从我从类似的帖子中可以看出,这是在抱怨缺少theme对象(该网站有一个声明了主题对象的MuiThemeProvider(。

谁能建议为什么这可能适用于npm install而不是npm link?我似乎无法弄清楚这一点。

在检查了各种提交并阅读了@AstenMies的参考资料后,我似乎已经解决了这个问题。或者至少我不再能够复制这个问题。

我不完全确定哪个确切的更改解决了这个问题,但我会列出我所做的,以防其他人发现自己处于这种情况:

  • 正如@AstenMies的链接所指向的那样,我的theme对象中的属性是未定义的(尽管这本身并没有解决我的问题(
  • 确保你的模块和站点的 React 和 React-DOM 版本相同
  • 不要混合使用yarn addnpm install- 混合包管理器可能会导致不一致
  • 如有疑问,请删除node_modules文件夹,然后重新安装。您也可以在此处npm cache clean以避免任何缓存的讨厌

最新更新