当尝试使用npm i命令安装npm包时,我得到了以下异常:
我尝试重新安装Node.js包,并使用以下方法将代理设置为关闭:
set HTTP_PROXY=
set HTTPS_PROXY=
问题仍然存在。我哪里做错了?
更新:
执行以下命令时:
npm install --legacy-peer-deps
系统显示如下错误:
当尝试使用npm i命令安装npm包时,我得到了以下异常:
我尝试重新安装Node.js包,并使用以下方法将代理设置为关闭:
set HTTP_PROXY=
set HTTPS_PROXY=
问题仍然存在。我哪里做错了?
更新:
执行以下命令时:
npm install --legacy-peer-deps
系统显示如下错误:
当前回答
最后,我找到了答案。试试这个命令-
npm install --save --legacy-peer-deps
此处描述legacy-peer-deps
其他回答
在我的例子中,我遇到了@babel/core依赖的问题,但我不想使用——force,因为我不确定后果,所以我去https://www.npmjs.com/,寻找包并用最新的包替换了我的旧版本。这就成功了。
我只是更新了我的Node.js,它为我工作:
node -v
输出:
V xxxx
And:
sudo npm install -g n
(使用此命令安装稳定节点release)
sudo n stable
这是Node.js版本的问题。一些最新版本的Node.js可能会显示类似的错误。
https://github.com/nvm-sh/nvm
我使用NVM来管理系统上的Node.js版本,并使用Node.js 12来克服这个错误。
修改版本命令:
nvm use 12
您可以使用显示此错误的两种方式安装包
ERESOLVE unable to resolve dependency tree
使用npm Install并使用——legacy-peer-deps安装包
npm install --save --legacy-peer-deps
这是两个命令的组合 a.在npm config中设置legacy-peer-deps为true NPM配置设置为true b.现在使用npm install安装包 npm安装
免责声明:这假设你使用的是npm v7
注意:如果你遵循兄弟注释的指示,它将创建一个用户范围的配置,不会在队友/机器/构建机器人之间保持同步。
基于项目的遗留对等依赖
您可能希望将遗留同行deps与您的项目绑定在一起,以便它在机器/开发人员之间扩散,而不会污染您的其他项目。
npm config set legacy-peer-deps true --location project
这将创建一个本地文件在.npmrc,你可以提交到你的存储库:
legacy-peer-deps=true
然后,你就可以跑了:
npm install
然后提交更新后的锁文件。
记住,位置,位置,位置:
per-project configuration (/path/to/my/project/.npmrc, see more): npm config set legacy-peer-deps true --location project per-user configuration (defaults to $HOME/.npmrc, see more) npm config set legacy-peer-deps true --location user or, as the default location is user anyway: npm config set legacy-peer-deps true global configuration (defalts to $PREFIX/etc/npmrc, see more) npm config set legacy-peer-deps true --location global or, as --global infers --location global npm config set legacy-peer-deps true --global
对于某些项目,修复依赖关系可能不是简单的
在我的案例中,我们有一个遗留版本的关键依赖项想要引入webpack v3(!) -但这是该项目的构建依赖项。
短期内最好的解决方案是使用遗留peer-deps作为保留。
如果你在紧要关头,你也可以考虑对依赖项进行分叉,并相应地调整它的对等依赖项——它们将你的项目指向分叉。