我相信我有一个重复的问题,但我正在努力解决它。在我的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.1
B包为^4.9.10
根据我对npm版本控制的理解。。。。这应该很好吧?
独立地,这两个包都可以正常工作,但一旦您尝试将它们一起使用,就会出现重复。我甚至不能确定这是一个重复问题,但我运行了源地图浏览器,它显示了重复问题,所以我只能假设这就是问题所在,但感觉我所有修复重复问题的尝试都无济于事。
这就是许多开发人员谈论的依赖性地狱吗??
所以,我找到了导致重复的原因,但我担心这会带来更多的问题而不是答案。
我的项目使用可加载组件。我一直在路由级别对所有内容进行代码拆分,所以我的所有组件都是逐页加载的。
导致重复错误的两个文件不包括从其中一个有问题的包导入的内容。我项目中的其他页面都会导入其中的包。当我导入这两个页面而不使用loadable时,重复就消失了。
我真的无法解释为什么会发生这种情况,但我想,当我的一个包没有导入到文件中时,不知何故,loadable会创建两个不同版本的包?所以一个区块有一个包的一个版本,而我的主区块有不同的版本?