【发布时间】:2019-03-21 12:53:16
【问题描述】:
我创建了许多 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?我似乎无法弄清楚这一点。
【问题讨论】:
-
问题肯定来自withStyles。正如我所认为的这里提到的,样式对象存在问题。原因显然是您在样式对象中的一个值是 null 或未定义。 See this issue on github。为什么它没有出现在 npm install 中?我不能用我这里的信息来判断。您可能在 npm link 和 npm install 中使用了不同的分支/版本。
标签: reactjs npm webpack material-ui npm-link