当尝试使用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
系统显示如下错误:
当前回答
如果它可以帮助某人,我得到这个错误,在GitHub操作,同时推送我更新的包和包锁JSON文件,
问题在于我们内部的NPM包不一致。 我必须补充一点
legacy-peer-deps=true
在我们的
npmrc。
文件来覆盖依赖项。
所以我觉得有时候最好使用legacy-peer-deps来覆盖项目包中不需要的依赖项
其他回答
除了使用——legacy-peer-deps命令行选项外,还可以将其永久地设置为配置选项:
npm config set legacy-peer-deps true
只需做两个简单的步骤:
首先,在终端中执行这个命令。
npm config set legacy-peer-deps true
其次,清除缓存:
npm cache clean --force
最后,执行你的命令。这肯定有用。
这对我来说很管用:
npm install --save --legacy-peer-deps
在这个案子上,我遇到了问题
无法解析依赖树
在一个Angular 13项目中,它使用了Azure DevOps中私有npm提要中的一些包。
为了访问这个存储库,我创建了一个.npmrc文件。正因为如此,npm install命令将搜索我的私有存储库中的所有包,而不再是npm feed中的包。无法解决依赖树错误是因为npm install命令找不到很多托管在npm提要而不是我的私有提要中的包。
我找到了一个关于如何确定包范围的惊人答案。
在此基础上,我做了一些修改:
在我的图书馆包里。Json,更新名称有一个作用域名@mylib “名称”:“@myLib /命令队列”, 构建并将此包发布到我的私人提要 在我的客户端应用程序(使用这个包的应用程序)中,更新.npmrc文件,只对这个范围内的包使用我的私有提要 @myLib:注册表= https://pkgs.dev.azure.com/..。 always-auth = true
现在,每当我运行npm install命令时,如果包的作用域是@myLib,它就会在我的私有提要中查找它,并在所有其他情况下使用npm提要(即@angular/…)
这是我的客户端应用程序包的一个例子。json文件:
"@angular/platform-browser-dynamic": "~13.3.0",
"@angular/router": "~13.3.0", <-- this comes from npm
"@myLib/jcg-command-queue": "^2.2.0", <-- This comes from my private feed
而且,有了这个改变,就不需要再在npm install命令中添加——legacy-peer-deps了。
我只是更新了我的Node.js,它为我工作:
node -v
输出:
V xxxx
And:
sudo npm install -g n
(使用此命令安装稳定节点release)
sudo n stable