SemVer计算器

语义版本控制包含五个组成部分:主版本号、次版本号、修订号,以及可选的后缀 -prerelease+build。该计算器可接收版本字符串,依据 semver 2.0.0 的语法规范进行验证,将其拆分为各个组成部分,并并排显示下一个主版本、次版本、修订版本和预发布版本(-rc.1)。

如何升级版本

  1. 1

    粘贴当前版本

    支持 `1.2.3`、`1.2.3-rc.1`、`2.0.0-alpha+exp.sha.5114f85` 及其他 semver 2.0.0 格式。

  2. 2

    查看解析出的各部分

    该工具将字符串拆分为主版本号、次版本号、修订号、预发布版本和构建元数据,方便您确认它是否按预期解析。

  3. 3

    比较接下来的版本

    它同时显示下一个主版本、次版本和修订版本,以及一个预发布候选版本(`-rc.1`)。升级次版本会将修订号重置为 0;升级主版本会同时重置次版本号和修订号。

  4. 4

    复制新版本

    选择适合你改动的版本,并将其用于你的 `package.json`、`Cargo.toml`、git 标签或版本说明中。

该计算器显示的内容

对于像 1.2.3 这样的版本,该工具会显示四个建议的后续版本:

升级类型 1.2.3 变为
主版本 2.0.0
次版本 1.3.0
修订版本 1.2.4
预发布版本 1.2.4-rc.1

升级次版本会将修订号重置为 0;升级主版本会同时将次版本号和修订号重置为 0。预发布建议会将下一个修订版本标记为发布候选版。像 npm version 这样的命令行工具还提供更多操作(premajorpreminorprepatch,以及就地递增预发布版本,例如 1.2.3-beta.1 变为 1.2.3-beta.2),供你在发布脚本中按需使用。

您将遇到的优先级规则

  • 预发布版本的优先级低于正式发布版本:1.0.0-rc.1 < 1.0.0
  • 数字标识符按数值顺序比较;字母数字组合按字典顺序比较:1.0.0-alpha.2 < 1.0.0-alpha.11
  • 构建元数据(+sha.abc)在优先级排序中被忽略1.0.0+202401011.0.0+20250101为等效版本。
  • 数字标识符中的首位零无效。1.0.0-rc.01 不是有效的版本号,请使用 rc.1

范围运算符速查表

  • ^1.2.3,版本号需满足 ≥1.2.3 且 <2.0.0(版本号保持在同一主要版本系列)。
  • ~1.2.3,版本号需满足 ≥1.2.3 且 <1.3.0(保持在同一子版本级别)。
  • >=1.2.3 <2.0.0,明确范围。
  • 0.x 具有特殊性:由于 1.0 版本之前的版本被视为不稳定版本,npm 将 ^0.2.3 归类为 >=0.2.3 <0.3.0

何时进行主要版本更新

重大变更(Bump Major)适用于任何影响下游用户的改动:包括移除公共API、修改函数签名、更改默认行为或重命名配置键。次要变更(Bump Minor)仅用于新增功能。补丁(Patch)则用于修复不改变系统规范的错误。

常见问题

编号 01.2.3 无效。每个数字标识符必须为非负整数且不包含前导零,但字面值 0 除外。

使用您上次发布的1.0.0-rc.N版本中的补丁版本号,semver会将其视为从预发布版升级至正式发布版。或者,您可以显式设置版本号并添加标签。

编号“Build”元数据位于+之后,在排序时会被忽略;编号“Prerelease”位于-之后,其优先级低于“Release”版本。大多数注册表系统同时支持这两种编号:例如1.2.3-rc.1+build.77

是的,semver版本无需连续更新主要版本。从3.x版本直接跳转到5.x版本是允许的,不过大多数团队通常仅将其用于表示重大且具有颠覆性的变更。

相关工具

此工具还提供其他语言版本