更新节点:出框 tray:
选项: 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: 要瞄准的分支, 默认masterlabel: 更新 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数字 :#majorminor数字 :#noop#noRelease(被接受为_或者说-介于 没有 财务报告和审定财务报表 释放(中文(简体) )patch数字 :#patch, (中文(简体) ),#bug, (中文(简体) ),#fix, (中文(简体) ),#tweak, (中文(简体) ),#updatesnoop数字 :#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"
]
}
]
}