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

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

set HTTP_PROXY=
set HTTPS_PROXY=

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

更新:

执行以下命令时:

npm install --legacy-peer-deps

系统显示如下错误:


当前回答

我们有同样的问题,导致错误如下:

npm犯错!代码erresolve npm 犯错!erresolve无法解析npm 犯错! npm犯错!解析时:@angular/material-moment-adapter@12.1.4 npm 犯错!发现:@angular/material@12.0.6 npm ERR! node_modules/@angular/material@angular / material@”~ 12.0.4” 从根项目开始 ...

我们在Azure-Pipelines中使用npm ci进行清洁安装。

问题经常出在那个包裹上。Json和包锁。Json不再同步。

解决方案是执行npm install local并推送新的package-lock.json。

作为额外的提示,我们在管道中添加了一个新任务,以便在作业失败时获得额外的信息。

 - task: Npm@1
    displayName: npm install
    inputs:
      command: custom
      customCommand: ci
      customRegistry: useNpmrc

  # ##vso[task.logissue type=error] writes the text to the summary page (error-log).
  - bash: echo "##vso[task.logissue type=error] If 'npm install' fails with 'ERESOLVE could not resolve', 'package.json' and 'package-lock.json' (needed for 'npm ci') may be out of sync. Run 'npm install' locally and push the new package-lock.json."
    condition: failed() # Only execute on fail
    displayName: npm install failed hint

其他回答

某些包在更新到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

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

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

npm config set legacy-peer-deps true

在我的例子中,我遇到了@babel/core依赖的问题,但我不想使用——force,因为我不确定后果,所以我去https://www.npmjs.com/,寻找包并用最新的包替换了我的旧版本。这就成功了。

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

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

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

修改版本命令:

nvm use 12

Yarn有一个特性可以解决这个问题。如果可以,尝试使用它来安装包。