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

Posted

技术标签:

【中文标题】您必须自己安装对等依赖项【英文标题】:You must install peer dependencies yourself 【发布时间】:2018-10-23 00:28:26 【问题描述】:
sudo npm install

结果:

npm WARN karma-sinon-chai@1.3.4 需要一个 sinon@>=2.1.0

【问题讨论】:

【参考方案1】:

您可以通过运行解决此问题

npm i --legacy-peer-deps

【讨论】:

【参考方案2】:

npm 不安装指定为 peerDependecy 的依赖项。 对于曾经使用bower 的人来说,这可能看起来很不愉快,但这没问题。你很快就会习惯的。

peerDependencies 是包开发者实际依赖的依赖项,但并未将其称为依赖项。他/她/他们(开发人员)只是假设无论他们的包将被使用到哪里,都会有karma-sinon-chai

你需要自己安装一个包的peerDependencys!

【讨论】:

没有安装peerDependencies的特殊方法。您只需像安装任何其他依赖项一样安装它。 npm i karma-sinon-chai 实际上这就是 npm 将它们记录为 WARN 的原因,这样您就可以看到有哪些 peerDependencies 并且您可以一个一个手动安装它 顺便说一句。如果您知道自己在做什么并且似乎没有必要安装peerDependencies,那么您可以忽略它们。我每天都会忽略很多。 (作为一个不成文的规则是它们大部分时间都存在) 我是 npm 新手,来自 ios 开发,在那里你被教导不要忽略任何警告(因为框架的安全性非常严格),我很难理解为什么或何时忽略这些警告。终端会说无法安装x 因为需要手动安装x 对等依赖项。但你是说忽略这个警告。那是因为真的安装了对等依赖项吗? 不!我提到“如果你知道你在做什么”。我将使用和定义 peerDependencies 的情况是(例如)编写一个必须在 Angular 驱动的代码中使用的库,但我不想特别提到对 Angular 的依赖。由于我的库的用户可能对 Angular 有其他版本的依赖。或者我想在我的库中使用另一个库,就像我的一样(这取决于 Angular)。安装该库会警告我“我需要 Angualr 作为 PeerDependency”,在这种情况下我可以忽略它。 可能还有更多我能想到的或者非常具体的情况。顺便说一句,不!在 JS 世界中,您可能会学会忽略警告,并且大多数时候只看到错误。特别是在浏览器的开发工具控制台中。 :)

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

安装拉力编码依赖项时未安装 NPM 警告所需的对等依赖项

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

尝试安装 gatsby.js,出现很多错误

Laravel mix vue-template-compiler 必须安装为对等依赖项

Angular package.json 和未满足的对等依赖项

为啥在 npm 中为插件使用对等依赖项?