当尝试使用npm i命令安装npm包时,我得到了以下异常:

我尝试重新安装Node.js包,并使用以下方法将代理设置为关闭:

set HTTP_PROXY=
set HTTPS_PROXY=

问题仍然存在。我哪里做错了?

更新:

执行以下命令时:

npm install --legacy-peer-deps

系统显示如下错误:


当前回答

重置package-lock。Json一直都很适合我:

git checkout -- package-lock.json

细节: 在更新遗留项目的所有包时,我经常遇到这种情况——我强烈不建议使用npm审计fix或npm I——force。删除包锁。Json也并不总是适用于我。回滚到包的工作版本。Json +包锁。Json和添加包对我来说是最安全、最快的变体。

其他回答

Use

npm install --legacy-peer-deps

这对我很管用。

除了使用——legacy-peer-deps命令行选项外,还可以将其永久地设置为配置选项:

npm config set legacy-peer-deps true

问题似乎是gf-kautomata-pipeline-ui使用的是Angular 9,而@angular/http需要Angular 7。(@angular/http已经弃用并最终被移除,它的所有功能都被移到了@angular/common中。)

见:https://www.npmjs.com/package/@angular http

如果你运行的是Angular 9,那么

从包中删除@angular/http。json(在Angular 9中你不需要它) 确保你的package.json中有@angular/common。 运行npm i。

如果你运行的是Angular 7,那么打开你的包。检查并确保你所有的Angular包都不高于^7.0.0。你可能还需要删除gf-kautomata-pipeline-ui,或者联系gf-kautomata-pipeline-ui的作者,看看这个库是否与Angular 7兼容。

这是Node.js版本的问题。一些最新版本的Node.js可能会显示类似的错误。

https://github.com/nvm-sh/nvm

我使用NVM来管理系统上的Node.js版本,并使用Node.js 12来克服这个错误。

修改版本命令:

nvm use 12

首先我尝试了

npm install

它给了我一个错误,无法解决依赖树,根据这个命令的帮助信息,

Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

我尝试了这个命令:

npm install --legacy-peer-deps

这解决了我的问题。