我如何阅读npm“;冲突的对等依赖”;错误消息?

我如何阅读npm“;冲突的对等依赖”;错误消息?,npm,Npm,我正在尝试升级我自己的项目的一些npm依赖项,并且我得到了一个“冲突的对等依赖项”错误 我在这个网站上看到很多问题,要求帮助修复这些错误。然而,我一直在努力寻找这些错误的真正含义。我觉得如果我明白了这一点,我就有机会独自解决这个问题 下面是我试图解释的错误消息: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! Found: @angular-devkit/b

我正在尝试升级我自己的项目的一些npm依赖项,并且我得到了一个“冲突的对等依赖项”错误

我在这个网站上看到很多问题,要求帮助修复这些错误。然而,我一直在努力寻找这些错误的真正含义。我觉得如果我明白了这一点,我就有机会独自解决这个问题

下面是我试图解释的错误消息:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: @angular-devkit/build-angular@0.1102.5
npm ERR! node_modules/@angular-devkit/build-angular
npm ERR!   dev @angular-devkit/build-angular@"~0.1102.9" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! dev @angular-devkit/build-angular@"~0.1102.9" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: @angular/localize@11.2.10
npm ERR! node_modules/@angular/localize
npm ERR!   peerOptional @angular/localize@"^11.0.0 || ^11.2.0-next" from @angular-devkit/build-angular@0.1102.9
npm ERR!   node_modules/@angular-devkit/build-angular
npm ERR!     dev @angular-devkit/build-angular@"~0.1102.9" from the root project
npm ERR! 
npm ERR! 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
来复制(我使用的是npm
7.10.0

我对“冲突对等依赖项”错误的一般理解是,我所依赖的某个包在某个包版本规范上表达了冲突,该规范与我实际安装的包版本不匹配

例如,如果我的项目直接依赖于包
A
B
,并且我安装了
A
12.0.0
,但是我的
B
版本对包
A
^11.0.0
具有对等依赖关系,那么我将得到一个冲突的对等依赖错误,因为我使用的
B
a
的版本可能不兼容

因此,对于此错误消息的含义,我的最佳猜测是,我所依赖的某个包对
@angular/localize
版本规范
^11.0.0 | ^11.2.0-next
,但此规范与我安装的
@angular/localize
版本不匹配

当我查看时,我确实看到
节点_modules/@angular devkit/build angular
条目有一个条目
“@angular/localize”:“^11.0.0 | ^11.2.0-next”
在其
对等依赖项中

然而,这是该文件中唯一提到的
@angular/localize
,或者实际上是在中。我还没有明确要求安装它。此外,在
节点_modules/@angular devkit/build angular
peerDependenciesMeta
中,它被标记为
“可选”:true
。因此,看到与之相关的错误消息是令人惊讶的

该错误指出特定的冲突对等依赖项是
@angular/localize@11.2.10
。我不知道那个版本号是从哪里来的。但无论如何,它实际上似乎与下面的依赖项规范相匹配:如果我转到并键入
@angular/localize
作为包,键入
^11.0.0 | | ^11.2.0-next
作为版本范围,我会看到包的
11.2.10
版本以绿色突出显示,表明它与范围相匹配

因此,我非常感谢您能帮助我详细了解此错误消息告诉我的内容。我不知道为什么
npm
试图安装
@angular/localize
11.2.10
,或者为什么它认为这与
@angular devkit/build angular
的对等依赖规范冲突。我觉得我可能完全误解了这个信息

我猜这可以归结为一些Angular软件包的最新发布版本之间的某种不兼容。如果有人对如何修复这个特定错误有任何建议,那就太好了——但我更感兴趣的是简单地理解错误消息告诉我什么,这样我就可以自己解决它

非常感谢

通读一遍,我对错误消息的解释似乎是正确的,这实际上是
npm
中的一个错误

这似乎被报告为:;一个补丁,所以我想我们只能等到它包含在即将发布的
npm
版本中