← 返回工具箱
Q5 · 为什么
Semver 版本比较
SEMVER · 开发辅助
语义化版本比较与批量排序:解析 prerelease/build 元数据,判断 ^ ~ >= 等范围是否命中,依赖升级不再靠猜。
双版本比较
vs
批量排序(每行一个版本)
范围判定
是否满足
遵循 semver.org:主.次.补丁[-先行版本][+构建元数据];先行版本低于正式版,点分标识符数字按数值、数字小于非数字比较;构建元数据不参与优先级。范围支持 ^(锁定主版本,0 系锁次版本)、~(锁定次版本)、>= > <= < = 与 1.2.x 通配。
>_ 使用指南 · GUIDE
语义化版本(semver.org)的规则细节比直觉多:先行版本低于正式版、点分标识符数字按数值比较、数字小于非数字、构建元数据不参与优先级。这个工具把 1.2.3 与 1.3.0-rc.1 谁先谁后、^1.2.3 到底放行哪些版本,全部按规范算给你看。
典型步骤:
- 比较两个版本:顶部输入两个版本号,中间给出
<=>关系,含先行版本时并列展示其标识符 - 批量排序:左下面板每行一个版本(可混入
v前缀与 prerelease),输出升序列表,非法行沉底并标记 - 范围判定:右下输入版本与范围(
^1.2.3、~1.2.3、>=2.0.0、1.2.x),即时给出命中与否 - 核对元数据:解析结果严格区分 prerelease(参与比较)与 build(不参与),排查「为什么这两个版本相等」时先看这里
>_ 常见问题 · FAQ
Q1 · ^1.2.3 允许升到 2.0.0 吗?
不允许。^1.2.3 表示 >=1.2.3 <2.0.0——主版本锁定。0 系主版本有特殊规则(0.x 本身就不稳定):^0.2.3 锁定次版本,即 >=0.2.3 <0.3.0;^0.0.3 则精确等于 0.0.3。~1.2.3 更保守,锁定次版本:>=1.2.3 <1.3.0。
Q2 · 1.0.0-alpha、1.0.0-alpha.1、1.0.0-beta 怎么排序?
升序为 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0。规则:先行版本低于正式版;点分标识符逐段比,纯数字段按数值比;数字段小于非数字段(所以 alpha.1 > alpha);前缀完全相同时标识符更多的一方更大。
Q3 · build 元数据(+build.5)影响比较吗?
不影响。1.2.3+build.1 与 1.2.3+build.9 按 semver 规范相等——构建元数据只作信息标注,不参与优先级。工具在解析结果里单独展示 build 字段,CI 里靠它区分产物、靠前者比较版本。
Q4 · v1.2.3 的 v 前缀合法吗?
输入时兼容:v1.2.3 会自动剥离前缀后解析(Git tag 惯例)。但要注意 semver 规范本体不含 v 前缀,写入 package.json 等语义字段时应使用裸版本号。
Q5 · 为什么 01.2.3 不是合法版本?
semver 规范禁止前导零(01、1.02 都非法),避免与八进制字面量混淆。工具按规范拒绝解析而不是猜测,排序面板会把这类行沉底标 # ✗,方便一眼定位脏数据。
此工具在你的浏览器本地运行,输入内容不会上传。按 Ctrl K 可随时切换到其他工具。