如何修复对等依赖项安装问题

Posted

技术标签:

【中文标题】如何修复对等依赖项安装问题【英文标题】:How to fix the peer dependencies Installation problem 【发布时间】:2019-11-06 08:36:00 【问题描述】:

我正在尝试使用 npm 安装 react-contenteditable。但是 eslint 的对等依赖项不允许我安装时出现以下错误。 我正在使用 Ubuntu 18.04 LTS 操作系统。

这是我用来安装 react-contenteditable 的代码。

npm i react-contenteditable
npm WARN @typescript-eslint/eslint-plugin@1.11.0 requires a peer of eslint@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/experimental-utils@1.11.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/parser@1.11.0 requires a peer of eslint@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/typescript-estree@1.6.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN eslint-config-react-app@4.0.1 requires a peer of eslint@5.x but none is installed. You must install peer dependencies yourself.
npm WARN eslint-loader@2.1.2 requires a peer of eslint@>=1.6.0 <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-import@2.16.0 requires a peer of eslint@2.x - 5.x but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-jsx-a11y@6.2.1 requires a peer of eslint@^3 || ^4 || ^5 but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-react@7.12.4 requires a peer of eslint@^3.0.0 || ^4.0.0 || ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-react-hooks@1.6.0 requires a peer of eslint@^3.0.0 || ^4.0.0 || ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/eslint-plugin@1.6.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/parser@1.6.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN ts-pnp@1.1.2 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN tsutils@3.14.0 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/jest-haste-map/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.0.6 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.0.6: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")

+ react-contenteditable@3.2.6
updated 1 package and audited 901320 packages in 20.608s
found 12 high severity vulnerabilities run `npm audit fix` to fix them, or `npm audit` for details

我什至尝试了npm audit fix 命令,但它也对我没有帮助。

【问题讨论】:

日志中显示您已安装该软件包。是的,有些警告不会对您造成太大伤害! 【参考方案1】:

据我所知,它们是无害的。但如果你真的对它们非常恼火、失眠或让你洗澡不干净? 你可以试试这些:

安装 typescript 和 eslint:

npm install typescript
npm install eslint

这是为了安抚这些警告

npm WARN @typescript-eslint/eslint-plugin@1.11.0 requires a peer of eslint@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/experimental-utils@1.11.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/parser@1.11.0 requires a peer of eslint@^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/typescript-estree@1.6.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN eslint-config-react-app@4.0.1 requires a peer of eslint@5.x but none is installed. You must install peer dependencies yourself.
npm WARN eslint-loader@2.1.2 requires a peer of eslint@>=1.6.0 <6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-import@2.16.0 requires a peer of eslint@2.x - 5.x but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-jsx-a11y@6.2.1 requires a peer of eslint@^3 || ^4 || ^5 but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-react@7.12.4 requires a peer of eslint@^3.0.0 || ^4.0.0 || ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN eslint-plugin-react-hooks@1.6.0 requires a peer of eslint@^3.0.0 || ^4.0.0 || ^5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/eslint-plugin@1.6.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN @typescript-eslint/parser@1.6.0 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN ts-pnp@1.1.2 requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN tsutils@3.14.0 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev but none is installed. You must install peer dependencies yourself.

npm 强制安装 如果您没有任何问题,我建议您不要经常这样做。但这可能是一个很好的例子。

npm install -f

这个命令是为了安抚这些警告:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/jest-haste-map/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.0.6 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.0.6: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")


再次它们是无害的,您可以尝试与它们一起生活。或者您可以尝试上面的命令来缓解生活中的一些小烦恼?

【讨论】:

【参考方案2】:

我知道这已经几个月了,但我想我会贡献我的解决方案。对我来说,一个特定版本的 typescript 正在寻找旧版本的 eslint。我使用了npm-update-all 全局工具来更新我的所有包。打字稿更新到 3.6.4,所有对等警告都消失了。当然,您想使用激进的措施,例如谨慎更新所有内容。

迈克

【讨论】:

以上是关于如何修复对等依赖项安装问题的主要内容,如果未能解决你的问题,请参考以下文章

您必须自己安装对等依赖项

为啥“npm install”告诉我“没有安装你必须自己安装对等依赖项:”?

为啥 NPM 7.17 不安装我的对等依赖项

如何处理在 Angular CLI 中安装对等依赖项?

如何修复 python 缺少的依赖项 - Homebrew

安装 grunt 插件时如何修复需要 grunt@~0.4.0 的对等方?