Skip to content

参考 ​

基于 Renovate · 核于 2026-07

速查 ​

  • 一行起步:{ "extends": ["config:recommended"] };更严用 config:best-practices
  • 配置文件:renovate.json / .json5 / .github/renovate.json / .renovaterc.json(package.json 字段已废弃)
  • 校验:npx --yes --package renovate -- renovate-config-validator --strict
  • 自托管跑一轮:RENOVATE_TOKEN=xxx npx --yes renovate owner/repo
  • 演练调试:LOG_LEVEL=debug renovate --dry-run=full owner/repo
  • rangeStrategy 默认 auto;应用用 pin、库用 replace / widen
  • 匹配包名:matchPackageNames 支持精确 / glob(@types/**)/ 正则(/^eslint/)/ 取反(!x)
  • 限流默认:prConcurrentLimit=10、prHourlyLimit=2、branchConcurrentLimit=null
  • 稳定期:minimumReleaseAge + internalChecksFilter(默认 strict)
  • 面板:config:recommended 自带 Dependency Dashboard
  • 别和 Dependabot 对同一生态同时开,会重复提 PR
  • 文档:https://docs.renovatebot.com/

配置文件位置(按查找顺序) ​

text
renovate.json
renovate.json5
.github/renovate.json / .github/renovate.json5
.gitlab/renovate.json / .gitlab/renovate.json5
.renovaterc / .renovaterc.json / .renovaterc.json5
package.json 的 "renovate" 字段(已废弃)

自定义位置用全局选项 configFileNames。

运行 / CLI 命令 ​

命令用途
npx --yes renovate owner/repo自托管,跑一个仓库
renovate --autodiscover跑遍所有有权限的仓库
renovate --dry-run=full owner/repo演练,不真的建 PR
renovate-config-validator [--strict]校验配置文件
docker run --rm -e RENOVATE_TOKEN=... renovatebot/renovateDocker 方式运行

常用环境变量:RENOVATE_TOKEN(平台 token)、RENOVATE_GITHUB_COM_TOKEN(拉 changelog)、RENOVATE_CONFIG_FILE、RENOVATE_AUTODISCOVER、LOG_LEVEL。

常用配置选项(含默认值) ​

选项默认说明
extends[]继承的预设数组,后者覆盖前者
packageRules[]规则数组,规则内 match* 为 AND
rangeStrategyauto版本范围更新策略
scheduleat any time创建 PR / 分支的时间窗口
timezoneUTCIANA 时区名
automergefalse是否自动合并
automergeTypeprpr / branch / pr-comment
platformAutomergetrue用平台原生自动合并
prConcurrentLimit10并发开着的 PR 上限(0 不限)
prHourlyLimit2每小时新建 PR 上限(0 不限)
branchConcurrentLimitnull并发分支上限,null 继承 prConcurrentLimit
minimumReleaseAgenull新版本冷静期(如 "3 days")
internalChecksFilterstrictstrict 不建早产 PR / none 建但挂 pending
lockFileMaintenance关定期重建 lock 文件
dependencyDashboardfalse(config:recommended 已开)依赖面板
ignoreDeps[]按名忽略的依赖
labels / addLabels[]替换 / 追加 PR 标签
reviewers / assignees[]审阅人 / 指派人
semanticCommitsauto语义化提交:auto 探测 / enabled / disabled
rebaseWhenauto何时 rebase:auto / behind-base-branch / conflicted / never
separateMajorMinortrue大版本与次要 / 补丁分开成不同 PR
separateMinorPatchfalse次要与补丁再拆开

预设速查 ​

预设作用
config:recommended官方推荐基线(旧名 config:base)
config:best-practicesrecommended + pin digest + 稳定期 + 配置迁移
config:js-apprecommended + 锁死应用依赖
config:js-librecommended + 只锁 devDependencies
:dependencyDashboard开启依赖面板
:dependencyDashboardApprovalPR 需先在面板勾选批准
:enableVulnerabilityAlerts开启漏洞告警更新
:pinAllExceptPeerDependencies除 peerDeps 外全部 pin
:maintainLockFilesWeekly每周维护 lock 文件
group:monorepos关联 monorepo 包分组(recommended 已含)
group:allNonMajor所有非大版本合一个 PR
schedule:weekly / schedule:nonOfficeHours排期预设
helpers:pinGitHubActionDigests把 Actions 锁到 commit SHA
docker:pinDigests把镜像锁到 digest
mergeConfidence:all-badges显示全部 Merge Confidence 徽章

预设族:config:*、group:*、schedule:*、docker:*、helpers:*、workarounds:*、replacements:*、security:*、monorepo:*、npm:*,以及 : 开头的内置默认预设。

rangeStrategy 速查(以 ^1.0.0 为例) ​

策略遇范围内 1.1.0遇超范围 2.0.0适用
auto(默认)由 Renovate 决定由 Renovate 决定通用
pin→ 1.1.0→ 2.0.0应用
bump^1.0.0→^1.1.0^1.0.0→^2.0.0想让清单永远追最新
replace只更新 lock→ ^2.0.0库 / 保守
widen保持→ ^1.0.0 || ^2.0.0peerDependencies
update-lockfile只更新 lock→ ^2.0.0lock 优先
in-range-only只更新 lock跳过只动 lock

matchUpdateTypes 常用值:major、minor、patch、pin、digest、pinDigest、lockFileMaintenance、rollback、bump、replacement。

踩坑清单 ​

  • config:base 已改名:v36 起用 config:recommended,校验器会提示迁移。
  • matchPackagePatterns / matchPackagePrefixes 已废弃:v38 起统一并入 matchPackageNames(自身支持 glob / 正则 / 取反)。正则要用一对斜杠 /.../ 包起来,且默认区分大小写。
  • fileMatch 改名 managerFilePatterns:写 customManagers 用新名。
  • timezone 默认 UTC:跨时区团队务必显式设,否则「凌晨」窗口错位。
  • schedule 只限创建、不限合并:窗口外已有 PR 仍会被 rebase / 更新。
  • prHourlyLimit 默认是 2(不是 0):首次接入若嫌慢,是它在限速;prConcurrentLimit 默认 10,多数仓库调到 3~5 更顺。
  • 自动合并需约 2 小时窗口:不会「测试一过立刻合」;且每轮每基线只合一个分支。
  • minimumReleaseAge 要配合 internalChecksFilter:默认 strict 才会「不建早产 PR」;设成 none 会先建 PR 挂 pending。
  • 别和 Dependabot 对同一生态同时开:会重复提 PR、互相打架,二选一。
  • fork 与无清单文件的仓库会被忽略:托管 App 默认跳过它们。
  • package.json 的 renovate 字段已废弃:新项目用独立 renovate.json。
  • 自托管缺工具链会失败:CLI 方式需自备 Ruby / Python / Composer 等;或用 Docker -full 镜像。

链接 ​