首页/ 学科题库/ npm/ peerDependencies对等依赖
npm 实战教程

peerDependencies对等依赖

2026-05-25 约 6 分钟 juanwangdev

peerDependencies对等依赖

peerDependencies用于声明包期望宿主环境提供的依赖,安装时不会自动下载,而是要求宿主项目自行安装匹配版本。

peerDependencies对等依赖

基本语法

JSON
{
  "name": "my-ui-lib",
  "peerDependencies": {
    "react": ">=17.0.0",
    "vue": "^3.0.0"
  }
}

核心行为

  • npm v7+:未安装peer依赖会自动安装,版本冲突会报错
  • npm v3-v6:仅发出警告,不自动安装
  • yarn v1:仅警告;yarn v2+:默认自动安装

典型使用场景

  1. 插件模式:UI组件库依赖宿主提供的React
  2. 构建工具插件:ESLint插件依赖宿主的ESLint
  3. 框架生态:Vuex依赖宿主的Vue
JSON
{
  "name": "eslint-plugin-react",
  "peerDependencies": {
    "eslint": "^8.0.0"
  }
}

peerDependenciesMeta可选标记

JSON
{
  "peerDependencies": {
    "webpack": "^5.0.0",
    "vite": "^4.0.0"
  },
  "peerDependenciesMeta": {
    "webpack": { "optional": true },
    "vite": { "optional": true }
  }
}

optional为true时,宿主未安装该peer依赖不会报错,适用于支持多种构建工具的库。

与dependencies的区别

类型是否自动安装适用场景
dependencies是包自身运行所需
peerDependencies否(npm7+可能自动)宿主应提供的共享依赖

peerDependencies不要滥用。仅当包需要与宿主共享同一实例时才使用,否则用dependencies。

要点总结

  • peerDependencies声明宿主应提供的依赖,避免重复实例
  • npm v7+会自动安装peer依赖,版本冲突会报错
  • peerDependenciesMeta.optional标记可选peer依赖
  • 插件、组件库、框架生态是典型使用场景
  • 非共享依赖场景应使用dependencies而非peerDependencies
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 NPM常见问题排查与修复 下一篇 → npm ci与overrides覆盖