SEM

SemVer 工具

语义化版本比较与升级建议

自动化与 DevOps
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月29日
选项模式
Versions

先填两个版本号,直接比较大小和差异级别;发布语义说明可在高级模式查看。

SemVer Result
Comparison and bump suggestions will appear here
🔒 浏览器内本地处理
页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

比较数字三段版本号,并以 Version A 计算 patch、minor、major 递增值。只识别三段数字,包含前导零;不实现预发布优先级、构建元数据、依赖范围或严格 SemVer 校验。各段应在安全整数范围内,发布级别仍需按实际代码变化决定。

失败门诊(高频踩坑)

把数字比较当成完整 SemVer 校验

原因:工具接受前导零,却不支持预发布、元数据、前缀或范围;各段使用 JavaScript Number,超过安全整数边界可能失去精度。

修复:这里使用安全整数范围内的核心三段版本。依赖解析或严格 SemVer 校验需使用完整实现,发布级别应依据实际兼容性变化。

生产可用片段

核心版本比较与算术递增

text

Version A:01.2.3
Version B:1.2.3

比较:相同
A 的 Patch:1.2.4
A 的 Minor:1.3.0
A 的 Major:2.0.0

仅数字解析器不接受 1.2.3-beta。

常见问题

支持哪些版本字符串?

仅支持 major.minor.patch 三段非负数字。前导零会被接受并转成数字,因此不是严格 SemVer 语法校验器;不支持预发布标签、构建元数据、v 前缀或依赖范围表达式。

升级建议如何计算?

以 Version A 为基准做算术递增:patch 加一;minor 加一并把 patch 清零;major 加一并把其余两段清零。它不会分析代码变更,也不会决定是否破坏兼容。

可以比较任意大的版本号吗?

版本各段使用 JavaScript Number,值或递增结果超过 Number.MAX_SAFE_INTEGER 时可能丢失精度,应保持在安全整数范围内。比较在本地完成,不检查包注册表或依赖图。

继续浏览