【问题标题】:Duplicate module imports重复的模块导入
【发布时间】: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


【解决方案1】:

我遇到了同样的问题,这对我有帮助:https://github.com/parcel-bundler/parcel/issues/1838#issuecomment-492369750

这基本上将消除对构建时间的重复依赖。 另请注意,您使用的是 TS,因此在这个问题上还有一个额外的复杂性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2012-02-05
    • 2015-09-15
    相关资源
    最近更新 更多