节点模块中的对等依赖性是什么?

package.json文件中的peerDependencies字段的简单说明

在一些package.json文件,您可能会看到以下几行:

{
  //...
  "peerDependencies": {
    "libraryName": "1.x"
  }
}

您可能已经看过dependenciesdevDependencies, 但不是peerDependencies

dependencies是您的项目所依赖的软件包。

devDependencies是开发阶段所需的软件包。说一个类似的测试框架笑话或其他实用程序,例如巴别塔或者ESLint

在这两种情况下,安装软件包时,软件包的依赖项和devDependencies都会自动安装npm

peerDependencies是不同的。它们不会自动安装。

当依赖项在程序包中列为peerDependency时,它不会自动安装。而是,包含该程序包的代码必须包含它作为其依赖项。

npm如果您跑步会警告您npm install并且没有找到这种依赖性。

例子:比方说包a包括依赖b

a/package.json

{
  //...
  "dependencies": {
    "b": "1.x"
  }
}

包裹b反过来要包c作为peerDependency:

b/package.json

{
  //...
  "peerDependencies": {
    "c": "1.x"
  }
}

因此,在包A中,我们必须添加c作为依赖项,否则在安装软件包时b,npm会警告您(代码可能会在运行时失败):

a/package.json

{
  //...
  "dependencies": {
    "b": "1.x",
    "c": "1.x"
  }
}

版本必须兼容,因此如果peerDependency被列为2.x,您无法安装1.x或其他版本。这一切都遵循语义版本控制

免费下载我的Node.js手册


更多节点教程: