语义版本计算
语义化版本号计算与比较,遵循 SemVer 2.0 规范。
版本递增
版本比较
版本范围检查
SemVer 规范
语义化版本号格式: MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
- MAJOR — 不兼容的 API 变更时递增
- MINOR — 向后兼容的功能新增时递增
- PATCH — 向后兼容的问题修复时递增
- PRERELEASE — 预发布标识 (如 alpha, beta, rc.1)
- BUILD — 构建元数据 (如 +build.123)
预发布标识详解
预发布标识通过 - 连接在 PATCH 版本号之后,表示版本优先级低于正式版本。标识内可用 . 分隔多个段,数字段按数值比较,字母段按 ASCII 比较。
| 标识 | 全称 | 常见用途 | 示例 |
|---|---|---|---|
alpha | Alpha | 内部测试版,功能不完整,可能存在大量 bug | 1.0.0-alpha |
beta | Beta | 公开测试版,功能基本完整,可能存在少量 bug | 1.0.0-beta.2 |
rc | Release Candidate | 发布候选版,功能完整,通过测试后可转为正式版 | 1.0.0-rc.1 |
dev | Development | 开发中版本,不稳定,仅用于开发调试 | 1.0.0-dev |
preview | Preview | 预览版,展示新功能,可能不稳定 | 1.0.0-preview |
pre | Pre-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)对范围的细节定义可能略有差异,生产环境建议结合对应工具验证。