【发布时间】:2019-10-05 19:17:44
【问题描述】:
我正在使用Parcel 和@material-ui/styles 创建一个应用程序。我的应用程序具有 @material-ui/styles 依赖项。我还导入了我自己存储在本地的 npm 包。这个包也有 @material-ui/styles 依赖,但它是对等依赖。我会假设这个包将使用我的应用程序中的@material-ui/styles 包,但是同一包的两个不同实例会导致It looks like there are several instances of "@material-ui/styles" initialized in this application. This may cause theme propagation issues, broken class names and makes your application bigger without a good reason. 错误。
我在这里描述它:https://github.com/mui-org/material-ui/issues/15745 但没有人试图帮助我。它可能与我正在使用的包没有直接关系,而是捆绑器的工作方式。我不知道为什么 Parcel 将这个包捆绑两次而不是一次。
当我尝试使用 Webpack 时出现同样的问题。我一直认为对等依赖会按照我描述的方式起作用。
这里是一个复制库:https://github.com/lukejagodzinski/mui-styles-reproduction
有人知道如何解决这个问题吗?
【问题讨论】:
-
这不是我的专业领域,但你有没有运行
npm ls @material-ui/styles来查看依赖项来自哪里? -
是的,我已经尝试过了。实际上,我想我现在已经设法解决了:P。嗯,这真的很奇怪,但我刚刚从包中删除了
node_modules并再次构建包,但让它抛出错误。即使出现错误,它也会构建包。现在,当我导入一个包时,它就可以正常工作了。所以也许这只是使用file:../card协议添加依赖的问题
标签: javascript webpack material-ui bundler parceljs