You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Renovate使peer与dev依赖版本保持匹配?

解决Monorepo中Renovate对Peer依赖相关开发依赖的升级控制问题

统一配置方案

在根目录的renovate.json中添加以下packageRules配置,即可实现所有库包的统一管控:

{
  "packageRules": [
    // 规则1:锁定devDependencies中的eslint版本,与peerDependencies保持一致,禁止小版本升级
    {
      "matchPackageNames": ["eslint"],
      "matchDepTypes": ["devDependencies"],
      // 直接关联peer依赖声明的版本,锁定dev依赖版本
      "allowedVersions": "{{peerDependencies.eslint}}",
      // 禁用该依赖的自动小版本升级
      "enabled": false
    },
    // 规则2:仅当eslint发布大版本时,同步更新peer依赖范围和dev依赖版本
    {
      "matchPackageNames": ["eslint"],
      "matchDepTypes": ["peerDependencies", "devDependencies"],
      // 仅匹配大版本更新(如9.x → 10.x)
      "matchUpdateTypes": ["major"],
      // 将peer依赖范围替换为新大版本的兼容范围,dev依赖同步到新大版本最小稳定版
      "rangeStrategy": "replace",
      "groupName": "eslint major version update"
    }
  ]
}

配置说明

  • 规则1:利用Renovate的模板变量{{peerDependencies.eslint}}直接关联当前包的peer依赖版本,强制dev依赖与peer依赖保持完全一致;enabled: false会阻止Renovate发起该依赖的小版本升级PR。
  • 规则2:仅对eslint的大版本更新触发,此时会同步更新peer依赖的版本范围(比如从^9.0.0改为^10.0.0),以及将dev依赖升级到新大版本的最小稳定版,且所有相关变更会合并为同一个PR。

额外提示

如果你的monorepo中不同库包的peerDependencies eslint版本范围存在差异,该配置会自动针对每个包的peer依赖版本锁定对应的dev依赖版本,无需为单个库包单独配置。

内容的提问来源于stack exchange,提问作者Filip Dupanović

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:22:04