工程依赖包 A、B,A 也依赖包 B,按树结构是这样的:
node_modules
├── A@1.0.0
│ └── node_modules
│ └── B@1.0.0
└── B@1.0.0
A 通过 peerDependencies 指定依赖的 B 版本为 1.0.0。
如果父工程想升级一下使用的 B 版本,从 1.0.0 升级到 2.0.0,npm install B@2.0.0
,这时候会报错误 unable to resolve dependency tree。
如果我直接改 package.json 和 package.lock.json 里面 B 的版本和校验信息,然后 npm install
,就能安装成功了。。
可以试试
yarn
的解决方案:手动选择版本号。