语义版本计算

语义化版本号计算与比较,遵循 SemVer 2.0 规范。

版本递增

主版本 (MAJOR)
不兼容的 API 变更
次版本 (MINOR)
向后兼容的功能新增
修订版本 (PATCH)
向后兼容的问题修复
预发布标识(快捷选择)
alpha
Alpha
内部测试版,功能不完整,可能存在大量 bug
beta
Beta
公开测试版,功能基本完整,可能存在少量 bug
rc
Release Candidate
发布候选版,功能完整,通过测试后可转为正式版
dev
Development
开发中版本,不稳定,仅用于开发调试
preview
Preview
预览版,展示新功能,可能不稳定
pre
Pre-release
预发布版本,泛指任何正式发布前的版本

版本比较

=

版本范围检查

SemVer 规范

语义化版本号格式: MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]

  • MAJOR — 不兼容的 API 变更时递增
  • MINOR — 向后兼容的功能新增时递增
  • PATCH — 向后兼容的问题修复时递增
  • PRERELEASE — 预发布标识 (如 alpha, beta, rc.1)
  • BUILD — 构建元数据 (如 +build.123)

预发布标识详解

预发布标识通过 - 连接在 PATCH 版本号之后,表示版本优先级低于正式版本。标识内可用 . 分隔多个段,数字段按数值比较,字母段按 ASCII 比较。

标识全称常见用途示例
alphaAlpha内部测试版,功能不完整,可能存在大量 bug1.0.0-alpha
betaBeta公开测试版,功能基本完整,可能存在少量 bug1.0.0-beta.2
rcRelease Candidate发布候选版,功能完整,通过测试后可转为正式版1.0.0-rc.1
devDevelopment开发中版本,不稳定,仅用于开发调试1.0.0-dev
previewPreview预览版,展示新功能,可能不稳定1.0.0-preview
prePre-release预发布版本,泛指任何正式发布前的版本1.0.0-pre.1

优先级排序: alpha < beta < rc < 正式版(如 1.0.0-alpha < 1.0.0-beta < 1.0.0-rc.1 < 1.0.0

范围语法

  • ^1.2.3 — 兼容 1.2.3 (≥1.2.3, <2.0.0)
  • ~1.2.3 — 近似 1.2.3 (≥1.2.3, <1.3.0)
  • >=1.0.0 <2.0.0 — 区间范围
  • 1.x — 通配符 (≥1.0.0, <2.0.0)

使用说明

功能介绍

语义版本计算工具遵循 SemVer 2.0 规范,支持版本号解析、主/次/修订版本递增预览与一键升级、预发布标识快捷选择(alpha/beta/rc/dev/preview/pre,点击即写入版本号并支持序号递增)、两个版本号大小比较,以及 ^/~/>= 等常见版本范围表达式校验,方便 npm、Cargo 等包管理场景快速判断版本关系。

操作步骤

在"当前版本"输入框输入 MAJOR.MINOR.PATCH 格式的版本号,下方会显示拆解后的主次修订版本与三种递增预览,点击对应卡片即可一键升级;如需追加预发布标识,可点击"预发布标识"区域的快捷按钮(alpha/beta/rc/dev/preview/pre),点击后会自动将标识写入版本号,再次点击同一标识可自动递增序号(如 alpha → alpha.1 → alpha.2);也可在"自定义预发布标识"输入框中手动输入后按回车或点击"添加预发布";在"版本比较"中输入两个版本号即可得到大小关系;在"版本范围检查"中输入版本与范围表达式(如 ^1.2.0)即可判断是否在范围内。

范围语法说明

^1.2.3 表示兼容版本,允许同主版本下的任意升级(≥1.2.3 且 <2.0.0);~1.2.3 表示近似版本,仅允许同次版本升级(≥1.2.3 且 <1.3.0);>=1.0.0 <2.0.0 表示区间范围;1.x 为通配符写法。预发布版本(带 -alpha 等)优先级低于正式版本。

注意事项

本工具实现的是简化版 SemVer 比较,对 build 元数据(+build.123)仅作解析不参与比较;复杂范围表达式(如 || 或组合)暂不支持;版本号必须为 X.Y.Z 三段数字格式,否则会被判定为非法;不同包管理器(npm、pip、cargo)对范围的细节定义可能略有差异,生产环境建议结合对应工具验证。