背景描述
之前安装好的项目,现在重新clone下来,进行依赖安装的时候出现包冲突事件。
问题原因
使用的npm版本是7以上,npm 从版本v7开始,install就默认以peerDependencies的方式去下载了。
依赖树状态类似如下图:
这种情况是,app_A和app_B共同依赖了packageA,当使用peerDependencies方式去下载的时候会被整合成一个packageA并且只有一个版本。当出现ant design和sula所依赖的react版本的时候就会出现,如下图的报错:
解决方法
npm i --legacy-peer-deps
这是再npm install的基础上,设置它使用–legacy-peer-deps的依赖树方式进行依赖下载。
结构类似下图:
app_A和app_B分别安装其对应依赖的packageA,从而解决包冲突问题。