修复安装 NPM 包的上游依赖冲突
Posted
技术标签:
【中文标题】修复安装 NPM 包的上游依赖冲突【英文标题】:Fix the upstream dependency conflict installing NPM packages 【发布时间】:2021-03-04 06:10:32 【问题描述】:尝试 npm install vue-mapbox mapbox-gl 我得到一个依赖树错误。
我正在使用 Vuetify 运行 Nuxt s-s-r,并且在运行此安装并收到此错误之前没有安装任何与 Mapbox 相关的东西。
38 error code ERESOLVE
39 error ERESOLVE unable to resolve dependency tree
40 error
41 error While resolving: [1mexample[22m@[1m1.0.0[22m
41 error Found: [1mmapbox-gl[22m@[1m1.13.0[22m[2m[22m
41 error [2mnode_modules/mapbox-gl[22m
41 error [1mmapbox-gl[22m@"[1m^1.13.0[22m" from the root project
41 error
41 error Could not resolve dependency:
41 error [35mpeer[39m [1mmapbox-gl[22m@"[1m^0.53.0[22m" from [1mvue-mapbox[22m@[1m0.4.1[22m[2m[22m
41 error [2mnode_modules/vue-mapbox[22m
41 error [1mvue-mapbox[22m@"[1m*[22m" from the root project
41 error
41 error Fix the upstream dependency conflict, or retry
41 error this command with --force, or --legacy-peer-deps
41 error to accept an incorrect (and potentially broken) dependency resolution.
41 error
41 error See /Users/user/.npm/eresolve-report.txt for a full report.
42 verbose exit 1
解决这个上游依赖冲突的正确方法是什么?
【问题讨论】:
【参考方案1】:看起来这是最新版本的 npm (v7) 中的 Peer Dependencies 存在问题,该版本仍然是 beta 版本。尝试使用npm install --legacy-peer-deps
了解详细信息,请查看https://blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major
【讨论】:
那个标志是什么? npm: When to use--force
and --legacy-peer-deps
可能会有帮助【参考方案2】:
在npm install
之后使用--legacy-peer-deps
。例如,如果你想安装镭,使用:
npm install --legacy-peer-deps --save radium
【讨论】:
【参考方案3】:有两种方式:
使用npm install --legacy-peer-deps
安装,如果这不起作用,请使用
强制方法。在 npm install 旁边添加 --force:npm install --force
【讨论】:
【参考方案4】:直到 npm 版本 7.19.1 仍然有同样的问题,在 升级到版本 7.20.3 使用命令 npm install -g npm@latest
和 npm audit fix
所有 pkgs 修复没有错误。
【讨论】:
以上是关于修复安装 NPM 包的上游依赖冲突的主要内容,如果未能解决你的问题,请参考以下文章
冲突的对等依赖关系:webpack@4.46.0 npm ERR!节点模块/webpack