为了解决NPM重复问题,两个包依赖于相同的peerDependency,但使用CRA React处于不同的版本级别



我相信我有一个重复的问题,但我正在努力解决它。在我的react项目中,我有两个包(A和B(,它们都在各自的peerDependencies中使用另一个包(C(。

当我只安装了A和C来构建我的项目时,一切都很好。当我npm安装包B并进行npm运行构建时,突然间,我至少有包A的重复块,并且我的构建大小从10MB变为40MB。诶呀

我已经运行了npm dedupe,什么都没有。

我复制了我的项目npm eject,并在webpack配置中添加了resolve.alias。再说一遍,什么都没有。

我的package.json中有什么可以更改的吗?这样其他两个包都会满意吗?

共享包为^4.11.0

并且在其他包的对等依赖

A包为^4.0.1B包为^4.9.10

根据我对npm版本控制的理解。。。。这应该很好吧?

独立地,这两个包都可以正常工作,但一旦您尝试将它们一起使用,就会出现重复。我甚至不能确定这是一个重复问题,但我运行了源地图浏览器,它显示了重复问题,所以我只能假设这就是问题所在,但感觉我所有修复重复问题的尝试都无济于事。

这就是许多开发人员谈论的依赖性地狱吗??

所以,我找到了导致重复的原因,但我担心这会带来更多的问题而不是答案。

我的项目使用可加载组件。我一直在路由级别对所有内容进行代码拆分,所以我的所有组件都是逐页加载的。

导致重复错误的两个文件不包括从其中一个有问题的包导入的内容。我项目中的其他页面都会导入其中的包。当我导入这两个页面而不使用loadable时,重复就消失了。

我真的无法解释为什么会发生这种情况,但我想,当我的一个包没有导入到文件中时,不知何故,loadable会创建两个不同版本的包?所以一个区块有一个包的一个版本,而我的主区块有不同的版本?

最新更新