@coorpacademy/update-node

中文文档
7.13.0发布于 2026/11/10MITCommonJS近 30 天下载 4872

睡眠时更新节点依赖性

中文使用文档
文档目录3 节
  1. 选项: gear :
  2. 配置
  3. 示例

更新节点:出框 tray:

Npm version Build Status Github Actions Status codecov

选项: gear :

需要22.12.0节点或更新.

用AVA进行测试需要22.20+,24.12+,或26+. 使用开发版本在 .nvmrc。 。 。 .

$ update-node --help
update-node [command]

Commands:
  update-node bump-dependencies  Upgrade Node.js and configured dependency
                                 clusters, then open pull requests
                                                          [aliases: upgrade, bd]
  update-node auto-bump          Bump the package version and publish if
                                 configured               [aliases: version, ab]
  update-node cleanup-prs        Comment on and close superseded generated
                                 Node.js upgrade pull requests
  update-node validate           Check the update-node configuration against its
                                 schema                         [aliases: check]
  update-node setup              Create .update-node.json using detected
                                 repository settings         [aliases: scaffold]

Options:
      --version                        Show version number             [boolean]
  -l, --local                          Keep upgrade commits local and skip
                                       GitHub PR cleanup               [boolean]
  -v, --verbose                        Include stack traces when a command fails
                                                                       [boolean]
  -t, --token                          GitHub token used for authentication
                                                                        [string]
  -a, --autoToken, --at, --auto-token  Use the GitHub token from gh auth token
                                                                       [boolean]
  -A, --auto                           Choose an upgrade or release from the
                                       current branch and commit       [boolean]
  -F, --folder                         Change to this folder before running the
                                       command                          [string]
  -s, --scope                          Scope for upgrade titles and branch
                                       names; does not change folders   [string]
  -C, --config                         Read configuration from this file instead
                                       of .update-node.json             [string]
  -d, --default-config, --default      Infer configuration when no configuration
                                       file is found                   [boolean]
  -c, --clean                          Stash changes, check out master and pull
                                       its upstream                    [boolean]
      --sync-lock                      Refresh lockfiles after a Node.js
                                       upgrade; disable with --no-sync-lock
                                                       [boolean] [default: true]
  -b, --pre-commit-bump-command        Commands to run before committing a
                                       Node.js upgrade; include their changes
                                                                         [array]
  -p, --pre-clean-command              Commands to run before stashing changes
                                       and checking out master           [array]
  -P, --post-clean-command             Commands to run after the clean checkout
                                       and pull                          [array]
  -f, --force                          Push with --force instead of
                                       --force-with-lease              [boolean]
  -h, --help                           Show help                       [boolean]

Upgrade related options:
  -T, --target                           Node.js version or range to target
                                                                        [string]
      --ignoreDependencies, --only-node  Upgrade only Node.js; skip dependency
                                         clusters                      [boolean]
      --lerna                            Update package engines in Lerna
                                         workspaces during a Node.js upgrade
                                                                       [boolean]
  -m, --message                          Append a message to upgrade commits and
                                         pull requests                  [string]
  -r, --reviewers                        Additional GitHub reviewers, separated
                                         by commas                      [string]
  -R, --teamReviewers                    Additional GitHub team reviewers,
                                         separated by commas            [string]
      --exact                            Use exact Node.js and npm engine
                                         versions     [boolean] [default: false]
      --loose                            Use >= for engine ranges; --no-loose
                                         preserves existing prefixes
                                                       [boolean] [default: true]

Examples:
  update-node setup                         Create a configuration for the
                                            current repository
  update-node bump-dependencies             Upgrade Node.js and configured
  --auto-token                              dependencies
  update-node auto-bump --auto-token        Create a release using the
                                            configured rules
  update-node cleanup-prs --repo            Clean up superseded Node.js upgrade
  owner/name --auto-token                   PRs in any repository

运行 update-node <command> --help 用于特定命令选项和示例.

配置

配置进入 a .update-node.json 在您的仓库的顶层.

基础配置

主要配置项目如下:

  • repoSlug: github 账户 + repo 名称
  • reviewers, (中文(简体) ), teamReviewers: 审评员或团队审评员阵列,缺省 []
  • baseBranch: 要瞄准的分支, 默认 master
  • label: 更新 Pull 请求( 默认) 后附的标签 Upgrades :outbox_tray:(中文(简体) )
  • packageManager: 要使用的软件包管理器( 默认) npm 除下列情况外 yarn.lock(中文(简体) )

三个更复杂的项目来配置 node 凸起逻辑, 依赖性 凸起逻辑 auto-bump,并更新了 PR dependencies,见下文各节.

自动弹出

您可以配置用顶级制作新版本的能力 auto-bump 键.

设定 auto-bump 改为 false 以禁用自动泵,包括其自动PR清理,或使用对象配置.

auto-bump.auto-clean-up 控制在自动跳出和默认情况下对已取代的Node.js升级的公关进行清理 true设置它 false 以禁用自动清理。 独立 cleanup-prs 命令仍然可用,无论设置如何.

如果你想让新软件包的版本被阴暗化 publish 子财产归真. (默认命令) npm publish,充满 publish-command(中文(简体) )

默认的 mecanism 选择哪个 semver 关卡是基于关键词机制 . major, (中文(简体) ), minor, (中文(简体) ), patch 提供给 npm version。 。 。 . noop 也用于防止新版本被制作.

对于凸起,默认关键字如下:

  • major数字 : #major
  • minor数字 : #noop #noRelease (被接受为 _ 或者说 - 介于 没有 财务报告和审定财务报表 释放(中文(简体) )
  • patch数字 : #patch, (中文(简体) ), #bug, (中文(简体) ), #fix, (中文(简体) ), #tweak, (中文(简体) ), #updates
  • noop数字 : #minor

优先排序为: noop, (中文(简体) ), major, (中文(简体) ), parch, (中文(简体) ), minor。如果没有匹配,则选择最新的。 默认 minor

您可以添加您的自定义关键字 custom-keywords 或用您的默认替换默认 keywords。双方接受一个对象{[优先级]: [关键词List]}. (如果给定的 semver 关卡只有一个关键字模式,则只能作为字符串提供)/

模式匹配不敏感 .

您也可提供 小型匹配 模棱两可.

如果你想要一个自定义, 外部选择的mecanism 只是把你的命令 release-type-command 属性.

node

此属性有助于配置与节点版本相关的文件, 并且您希望在测试节点版本时被更新 .

当一个节点升级同步锁定文件或运行预先承诺的凸起命令时,更新节点需要节点版本管理器. 它更喜欢nvm(nvm use,则 nvm install (如有需要) n auto 当 nvm 不可用时。 这些命令与已激活的节点版本一起运行. 如果两个管理器都没有可用,则升级在更改版本文件之前停止 No node version manager was found升级 --no-sync-lock 并且没有预先承诺的命令不需要管理器.

自动升级为每个发布时准备单独的选项, 支持在主软件包最小值或高于主软件包的节点主选项 engines.node 版本。 上限和范围操作员不限制未来主要替代品: ^22.22.2 在支持这些线时,仍然会产生22号、24号和26个公关。 目前的排放在LTS之前包含;不包括预释放和EOL主要排放. 为每个主机选择最新发布的带有可用精确的多克标记. 明确 --target 保留单级升级行为.

每种选择从同一个开始 baseBranch 承诺 一个新的主机将引擎的最小值提升到所选的全放出,并将现有的npm引擎更新到捆绑npm版本. 在同一大项内,每个软件包保持其已存在的节点和npm引擎范围,同时配置版本针和锁文件刷新. 设定 node.preserveSameMajor 改为 false 在同一专业内提高引擎迷你度。 任何配置的软件包最小值以下的候选人都会跳过 。 锁定同步和预先承诺命令明确激活选定的发布,即使没有 .nvmrc 已配置.

分支使用配置的前缀、范围、主要和次要,例如 update-node-api-v24.10。补丁更新复用分支和PR。 本地模式准备独立的本地分支和承诺. 最初的出票在每位候选人之后恢复;需要一棵干净的履带式工作树. 据报出现失败,其他候选人继续留任,如果有任何候选人失败,则命令退出。 未经更改的候选人不会产生承诺或公关.

期间 auto-bump在创建版本承诺之前,更新节点检查总部最近合并的PR,包括快速前方摘要承诺。 如果是生成的节点升级 PR, 它会评论 Superseeded by #<merged-PR-number> 为同一大类中的低等或更年长的未成年人配对节点升级公关,并关闭。 更高版本的替代品保持开放。 清理需要匹配生成的元数据,寄存器,基数,前缀和范围;PR作者不需要匹配对方或认证的账户. 它只在合并后运行,而不是当替换的PR创建后运行. 现有的相同评论在重试时重复使用. 本地模式跳过 GitHub 清理, 查找或清理失败会发出警告而不阻碍发布 .

运行 update-node cleanup-prs --auto-token (或 --token <token>在所有主要线路上独立进行自动抽取和总部清理。 匹配的更新合并升级作为替换优先,即使是其行中最新的开放PR. 否则,每一大类中最新的公开公关取代了同一大类中的旧的公开公关: 22.1, (中文(简体) ), 22.2 财务报告和审定财务报表 22.3 打开,清理关闭前两个并引用 22.3 公关。 开放的高级替代方法不能取代低级的PR。 没有进行版本突起或出版. --local 跳过 GitHub 访问 .

要从任何文件夹清理另一个寄存器, 请使用 update-node cleanup-prs --repo owner/name --auto-token (或 --token <token>) (中文(简体) ). 与 --repo,本地配置和包文件被绕过,目标寄存器的默认分支通过GitHub解决. 仓库、基地、前缀和范围保障措施仍然适用,不论公共关系作者如何。 命令报告匹配PR计数和关闭,保存或失败的数字,包括找不到合格PR时. --local 跳过搜索和清理.

当生成的标题、正文和全版分支都同意时,清理还承认没有元数据的更老的公关 Upgrade Node to v26.13.0, (中文(简体) ), :rocket: Upgraded Node version to v26.13.0,以及 update-node-v26.13.0。补丁版本通过数字比较。 现代 PR 取代了同一版本的旧格式 PR,包括默认的前缀过渡 update-node 改为 upgrade-node;自定义前缀和范围仍然分开. 用于下补丁版本的现代 PR 无法取代更新后遗留的 PR .

以下是配置属性列表 :

  • branch: 要执行的节点更新的分支前缀
  • exact: 写出精确的节点.js和npm引擎版本, 例如 24.22.2,而不是范围。 默认为 false; 启用 exact 优先于 loose。 。 。 .
  • loose: 写入 >= 默认引擎范围。 设定为 false 以保留现有的区域前缀,例如 ^ 或者说 ~,当 exact 已禁用。 等同的CLI旗帜是 --exact 财务报告和审定财务报表 --no-loose。 。 。 .
  • preserveSameMajor:当所选择的放出在同一个节点主干线时,保留现有的节点和npm引擎范围. 默认为 true 自动多版本升级和 false 包括明确 --target 请求。 明显的布尔覆盖默认; 针和锁文件仍在刷新 .
  • nvmrc: 更新 .nvmrc 文件
  • dockerfile: 更新多克文件的Node.js版本
  • travis: 在 .travis.yml 文件
  • package: 更新软件包引擎 package.json 文件
  • serverless: 更新节点.js运行时间 serverless.yml 文件
  • lerna: 在整个Lerna工作空间更新软件包引擎;默认为 false 除非启用 --lerna 生成默认配置时检测到

每个文件选项接受 true 对于它通常的文件名,路径,一系列路径,或 false 跳过它。 Oconduction 文件选项被跳过;生成的默认配置启用被检测到的文件和包引擎. 设定 node 改为 false 以完全禁用节点升级.

何时 preserveSameMajor 应用时,即使 exact 或者说 loose 否则将改变格式.

附属关系更新

这个 dependencies 选项是为了定义要升级的一组依赖性集群. 集群配置具有以下属性:

  • name: 集群名称
  • message: 犯罪的名称和拉动请求
  • branch: 用于打开拉动请求的分支
  • dependencies: 需要更新的(生产)依赖.
  • devDependencies: 需要更新的依赖关系.

依赖可以是完全匹配,也可以是使用 小型匹配。例如 eslint, (中文(简体) ), eslint-plugin-* @babel/*

示例

以下是由此寄存器所启发的配置,其中Node.js升级和自动PR清理明确启用:

{
  "repoSlug": "Coorpacademy/update-node",
  "baseBranch": "master",
  "packageManager": "npm",
  "reviewers": [],
  "teamReviewers": [
    "env:TEAM_REVIEWERS"
  ],
  "label": "Upgrades :outbox_tray:",
  "auto-bump": {
    "auto-clean-up": true,
    "publish": true,
    "keywords": {
      "noop": ["#noop", "Update *#*"],
      "major": "#major",
      "minor": true,
      "patch": ["#bug", "#tweak", "plugging", "#updates"]
    }
  },
  "node": {
    "branch": "upgrade-node",
    "exact": false,
    "loose": true,
    "preserveSameMajor": true,
    "nvmrc": true,
    "dockerfile": false,
    "travis": false,
    "package": true,
    "serverless": false,
    "lerna": false
  },
  "dependencies": [
    {
      "name": "core",
      "message": "Update core dependencies",
      "branch": "update-core",
      "dependencies": [
        "bluebird",
        "yaml",
        "lodash",
        "minimatch",
        "yargs",
        "protocall",
        "request",
        "semver",
        "shelljs"
      ]
    },
    {
      "name": "testing-tools",
      "message": "Update Testing dependencies",
      "devDependencies": [
        "ava",
        "istanbul",
        "codecov",
        "nyc"
      ]
    },
    {
      "name": "eslint",
      "message": "Update eslint",
      "devDependencies": [
        "eslint",
        "@coorpacademy/eslint-plugin-coorpacademy"
      ]
    }
  ]
}

你也可以检查 验证计划a 或者说 测试样本

版本与发布记录

@coorpacademy/update-node 共发布 72 个版本,首次发布于 2017/09/04;过去 12 个月发布了 3 个版本。

版本发布日期距今
7.13.0latest2026/11/10今天
7.12.02026/10/3011 天前
7.11.02026/10/3011 天前
7.5.02025/08/051.3 年前
7.4.02025/04/041.6 年前
7.3.12025/04/011.6 年前

其他发布通道:debug → 5.4.2。

关于 @coorpacademy/update-node 的常见问题

@coorpacademy/update-node 是什么?

睡眠时更新节点依赖性

如何安装 @coorpacademy/update-node?

在项目目录运行 npm install @coorpacademy/update-node,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 update-node,可以用 npx update-node 直接运行。

@coorpacademy/update-node 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/coorpacademy__update-node 是否存在。

@coorpacademy/update-node 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@coorpacademy/update-node 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@coorpacademy/update-node 可以商用吗?

@coorpacademy/update-node 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@coorpacademy/update-node 的下载量有多少?

根据 npm 官方下载统计,@coorpacademy/update-node 在 2026/10/11 – 2026/11/09 这 30 天内被下载 4,872 次,日均约 162 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@coorpacademy/update-node 还在维护吗?

最新版本 7.13.0 发布于 2026/11/10(今天);至今共发布 72 个版本,其中过去 12 个月发布了 3 个;首次发布于 2017/09/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。