如何安装 npm peerDependencies 以删除警告

Posted

技术标签:

【中文标题】如何安装 npm peerDependencies 以删除警告【英文标题】:How to install npm peerDependencies to remove warnings 【发布时间】:2018-12-01 10:29:39 【问题描述】:

我在 *** 上看到过关于 npm peerDependencies 警告的类似问题 - 但没有一个解决实际安装依赖项的最佳实践。即,我们现在应该将它们与dependenciesdevDependencies 一起保存吗?如果是这样,peerDependenciespackage.json 中的作用是什么?

在安装了一些其他 npm 包后,我收到了一系列警告:

npm WARN slate-prop-types@0.4.32 requires a peer of slate@>=0.32.0 but none is installed. You must install peer dependencies yourself.

所以我所做的是在package.json 中设置一个peerDependencies 对象,并包含它的要求:

...
"peerDependencies": 
  "slate": "0.32.0"
,
...

重新运行npm i,但警告仍然存在。

只有当我在 devDependencies 或依赖项中包含 peerDependency 时,警告才会消失,我真的不想这样做,因为它混淆了我的项目直接依赖的包。

解决这个问题的正确方法是什么?

【问题讨论】:

你可以试试npm install --save slate@0.32.0 @Isaac 这会起作用,但正如我提到的,它会将其保存到我不喜欢的dependencies。这是处理 peerDependencies 的最佳做法吗? @Raptor 我知道它已在 npm 3 中删除 - 但是手动安装它们的最佳做法是什么?如果 peerDependencies 对象没有做任何事情 - 它的目的是什么? @Raptor 我已经阅读了这篇文章 - 但它再次没有说明如何实际安装对等依赖项。 哦,伙计们。只需回答问题 - 如何手动安装同行依赖项?是关于运行npm install slate@0.32.0 --no-save 吗?如果是这样,下一次运行 npm install 将删除所有对等依赖项。如果我有一个插件项目,并且我正在测试它而不使用主机应用程序怎么办? 【参考方案1】:

在执行 npm-install PeerDependencies 时未安装。对等依赖项列在 peerDependencies 对象的 package.json 文件中。它们可以使用 npm 自动安装, npm install --save-dev --ignore-scripts install-peers

【讨论】:

以上是关于如何安装 npm peerDependencies 以删除警告的主要内容,如果未能解决你的问题,请参考以下文章

快速解决NPM报错:peerDependencies WARNING

探讨npm依赖管理之peerDependencies

意外的 NPM PeerDependency 错误

npm peerDependency 问题与 grunt 和 flatiron peer

--legacy-peer-deps 作用

如何将 npm 依赖项添加为对等依赖项