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

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

set HTTP_PROXY=
set HTTPS_PROXY=

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

更新:

执行以下命令时:

npm install --legacy-peer-deps

系统显示如下错误:


当前回答

这与HTTP代理无关。

正如上面所说,您存在依赖冲突(不正确且可能被破坏的依赖),因此尝试使用——force或——legacy-peer-deps运行该命令。如果它不生效,临时解决方案是使用以前版本的Node.js(降低Node.js版本),因为它有时会导致这种错误发生。

根据OP的更新更新:

如你所见,它触发了以下错误:

@angular/http@^9.1.4没有找到匹配的版本。

看看angular/http页面。请注意,该已弃用包的最新版本是7.2.16,而您请求的是更高版本(例如,^9.1.4)!因此,请尝试检查项目依赖关系,并根据所提出的错误来解决问题。

其他回答

这与HTTP代理无关。

正如上面所说,您存在依赖冲突(不正确且可能被破坏的依赖),因此尝试使用——force或——legacy-peer-deps运行该命令。如果它不生效,临时解决方案是使用以前版本的Node.js(降低Node.js版本),因为它有时会导致这种错误发生。

根据OP的更新更新:

如你所见,它触发了以下错误:

@angular/http@^9.1.4没有找到匹配的版本。

看看angular/http页面。请注意,该已弃用包的最新版本是7.2.16,而您请求的是更高版本(例如,^9.1.4)!因此,请尝试检查项目依赖关系,并根据所提出的错误来解决问题。

试试这个命令-

npm install --save --legacy-peer-deps

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

git checkout -- package-lock.json

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

某些包在更新到npm 7后会出现这种情况。

参数——legacy-peer-deps可以帮助:

npm i --legacy-peer-deps

此处描述legacy-peer-deps

导致npm在构建peerDependencies时完全忽略 包树,如NPM版本3到6。 如果一个包因为过于严格而无法安装 碰撞的peerDependencies,它提供了一种前进的方式 解决问题。 ...

你可以在默认情况下将这个选项设置为true (npm不推荐):

npm config set legacy-peer-deps true

或者只是等待,直到这些软件包更新。

只需做两个简单的步骤:

首先,在终端中执行这个命令。

npm config set legacy-peer-deps true

其次,清除缓存:

npm cache clean --force

最后,执行你的命令。这肯定有用。