如何解决npm UNMET PEER DEPENDENCY警告?

我在Windows 10上,使用Node 5.6.0和npm 3.6.0。我正在尝试将angular-material和mdi安装到我的工作文件夹中。npm使用以下命令安装角度材料的mdi错误:

+-- angular@1.5.0

+-- UNMET PEER DEPENDENCY angular-animate@^1.5.0

+-- UNMET PEER DEPENDENCY angular-aria@^1.5.0

+-- angular-material@1.0.6

+-- UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57

npm WARN enoent ENOENT: no such file or directory, open
'C:\Users\xxxxx\Desktop\ngClassifieds\package.json' 

npm WARN angular-material@1.0.6 requires a peer of
angular-animate@^1.5.0 but none was installed. 

npm WARN angular-material@1.0.6 requires a peer of angular-aria@^1.5.0
but none was installed. 

npm WARN angular-material@1.0.6 requires a peer of
angular-messages@^1.5.0 but none was installed.

如何解决此问题以安装AngularJS材质和MDI?

达蒙2020/03/23 14:23:29

您可以通过全局安装UNMET依赖项来解决。

示例:npm install -g @ angular / common @ 4.4.6

逐一安装。它为我工作。

小哥凯小小2020/03/23 14:23:29

今天可用的Angular 2 rc.7,我在rxjs@5.0.0-beta.12UNMET PEER DEPENDENCY上也遇到了类似的问题

如果您像我一样简单地替换@angular/...rc.6@angular/...rc.7-这还不够。因为,例如,@angular/router没有rc.6版本。

在这种情况下,最好快速入门中查看package.json

卡卡西2020/03/23 14:23:29

给定的答案将永远不会奏效。如果不能解决您的问题。确保您还使用了正确的符号package.json这对于解决头痛非常重要。例如:

warning " > @angular/compiler-cli@5.2.7" has incorrect peer dependency "typescript@>=2.4.2 <2.7".
warning " > tsickle@0.25.6" has incorrect peer dependency "typescript@>=2.4.2 <2.6".

所以我的 TypeScript需要在2.4.2和2.6之间吗?

因此,我将我的 TypeScript库从使用更改"typescript": "^2.7"为使用"typescript": "^2.5"看起来正确吗?

错误。

^意味着您可以使用"typescript": "2.5""2.6"或其他方式使用npm "2.7"...

如果你想学什么^~它平均看:什么是符号(〜)和尖之间的(^)中的package.json有什么区别?

另外,您还必须确保该软件包存在。也许没有"typescript": "2.5.9"查找包裹号。为了真正安全起见,请删除~或,^如果您不想阅读它们的含义。

Stafan2020/03/23 14:23:29

好的,所以我努力了很长时间试图解决这个问题。这是选项,适用于您用尽其他所有方式后。

完成后,它仍然有效,请将您的实际代码导入到这个新项目中。修正新的角度原因导致的编译错误。

多数民众赞成为我做的.. 1个小时的返工vs 6个小时的尝试找出wtf是错误的..希望我以此方式开始。

Stafan路易2020/03/23 14:23:28

导致此错误的最可能原因之一是您在package.json中定义了较旧的版本。要解决此问题,请更改package.json中的版本以匹配npm抱怨的版本。

完成后,运行npm install并瞧瞧!!

宝儿2020/03/23 14:23:28

This answer doesn’t apply all cases, but if you can’t solve the error by simply typing npm install , this steps might help.

Let`s say you got this error.

UNMET PEER DEPENDENCY packageA@4.2.0

npm WARN packageB@3.3.0 requires a peer of packageA@^3.1.0 but none was installed.

This means you installed version 4.2.0 of packageA, but packageB@3.3.0 needs version 3.x.x of pakageA. (explanation of ^)

So you can resolve this error by downgrading packageA to 3.x.x, but usually you don`t want to downgrade the package.
Good news is that in some cases, packageB is just not keeping up with packageA and maintainer of packageB is trying hard to raise the peer dependency of packageA to 4.x.x.
In that case, you can check if there is a higher version of packageB that requires version 4.2.0 of packageA in the npm or github.

For example, Go to release page在此处输入图片说明

通常,您会发现这样的依赖关系方面的重大变化。

packageB v4.0.0-beta.0

BREAKING CHANGE
package: requires packageA >= v4.0.0

如果您在发布页面上找不到任何内容,请转到发布页面并按关键字搜索问题,例如peer您可能会找到有用的信息。

在此处输入图片说明

此时,您有两个选择。

1)升级到所需的版本
2)暂时保留错误,请等待稳定版本发布。

如果选择option1:
在许多情况下,版本没有latest 标签,因此不稳定。因此,您必须检查此更新中有哪些更改,并确保所有内容都不会中断。

如果您选择选项2:
如果将pakageA从版本3升级到4是微不足道的,或者如果pakageB的维护者尚未测试pakageA的版本4,但表示应该没问题,则可以考虑保留该错误。

在这两种情况下,最好彻底测试它是否不会破坏任何东西。

最后,如果您想知道为什么必须手动执行操作,则此链接可以很好地说明。

LEYA理查德2020/03/23 14:23:28

UNMET PEER DEPENDENCYpackage.json不满足文件中指定的一个或多个模块的依赖性时,将引发错误仔细检查警告,并package.json使用正确版本的依赖项更新文件。

然后跑

rm -rf node_modules/
npm cache clean
npm install

这将正确安装所有必需的依赖项。

ItachiJinJin2020/03/23 14:23:28

就我而言,所有依赖项已经存在。在这种情况下,请更新NPM,因为它可能已崩溃。它解决了我的问题。

npm install -g npm
小小2020/03/23 14:23:28

npm-install-peers为我工作。

npm install -g npm-install-peers
理查德GO2020/03/23 14:23:28

npm不再安装对等项依赖项,因此您需要手动安装对等项依赖项,只需npm install对所需的deps进行操作,然后尝试再次安装主要对等项


回复评论:

这是正确的信息,它说明您缺少哪些部门

UNMET PEER DEPENDENCY angular-animate@^1.5.0 +-- 
UNMET PEER DEPENDENCY angular-aria@^1.5.0 +-- angular-material@1.0.6 +
UNMET PEER DEPENDENCY angular-messages@^1.5.0 `-- mdi@1.4.57` 

所以你需要 npm install angular angular-animate angular-aria angular-material angular-messages mdi