当尝试使用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 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作为保留。
如果你在紧要关头,你也可以考虑对依赖项进行分叉,并相应地调整它的对等依赖项——它们将你的项目指向分叉。
其他回答
问题似乎是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降级到v14适合我。
使用这些命令:
source ~/.bash_profile
nvm use v14.16.1
npm install
最后,我找到了答案。试试这个命令-
npm install --save --legacy-peer-deps
此处描述legacy-peer-deps
在使用npm 7时,这种情况经常出现,因为对等依赖问题在版本7中被视为错误,而在版本6中通常只是警告。通常使用——legacy-peer-deps可以让它在npm 7中工作。
当这不起作用时,一个选择是降级到npm 6。降级Node.js是没有必要的(但也没有害处)。相关的依赖管理代码在npm中。降级Node.js通常是巧合,因为这样做通常也会降级npm。
另一个比降级npm破坏性更小的选择是使用npx来使用之前版本的npm的install命令:npx -p npm@6 npm install
当所有这些都失败时,通常值得尝试删除node_modules目录和包锁。Json,然后再次运行NPM install。这会重新生成node_modules和package-lock.json。
如果它可以帮助某人,我得到这个错误,在GitHub操作,同时推送我更新的包和包锁JSON文件,
问题在于我们内部的NPM包不一致。 我必须补充一点
legacy-peer-deps=true
在我们的
npmrc。
文件来覆盖依赖项。
所以我觉得有时候最好使用legacy-peer-deps来覆盖项目包中不需要的依赖项