Press⌘+Kto search
SemVer版本解析比较器
解析、比较、排序语义化版本号,支持 ^ ~ 范围匹配判断
按 semver.org 规范解析版本号的 major / minor / patch / prerelease / build 各段,支持两个版本比较(正确处理先行版本排序规则)、批量排序、以及 ^1.2.3、~1.2.3、>=1.0.0 <2.0.0 等范围匹配判断。手写解析引擎,无第三方依赖,全部计算在浏览器本地完成。
输入
输入单个版本号,实时分解并校验是否符合 SemVer 规范
SemVer 规范速查卡
- • 版本格式:主版本.次版本.修订号[-先行版本][+构建元数据],如 1.2.3-alpha.1+exp
- • 主版本 MAJOR:不兼容的 API 修改;次版本 MINOR:向下兼容的功能新增;修订号 PATCH:向下兼容的问题修复
- • 先行版本排序:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
- • 标识符比较:纯数字按数值比较,字母按 ASCII 排序;数字标识符优先级低于字母标识符
- • 字段越多优先级越高(前面字段都相等时);构建元数据(+ 后内容)不参与优先级比较
- • 范围语法:^1.2.3 → >=1.2.3 <2.0.0(0.x 时锁定次版本);~1.2.3 → >=1.2.3 <1.3.0;空格分隔为「与」,|| 分隔为「或」
解析结果
输入版本号后,这里会显示分解结果
#关于SemVer版本解析比较器
语义化版本(Semantic Versioning,简称 SemVer)是目前最流行的版本号规范,由主版本号(MAJOR)、次版本号(MINOR)和修订号(PATCH)三段数字组成,可附加先行版本标识(如 alpha、beta、rc.1)与构建元数据。npm、Maven、Cargo、Go Modules 等主流包管理器都基于 SemVer 进行依赖解析,理解它的优先级规则是排查「为什么没有装上最新版本」「为什么锁文件突然变了」这类问题的基础。
典型应用场景
- 发版前确认新版本号与旧版本的语义关系(修复应升 PATCH、加功能应升 MINOR、破坏性变更应升 MAJOR)
- 排查依赖冲突:把 package.json 里的 ^ ~ 范围展开成精确区间,确认某个已安装版本是否真的满足约束
- 整理发布清单:把散落在 issue 里的版本号批量排序,核对发布顺序
- 校验先行版本命名是否规范(alpha.1、beta.2、rc 而不是随意字符串)
常见问题
- 为什么 1.0.0-alpha 比 1.0.0 小?规范规定有先行版本标识的版本优先级低于正式版本,因为先行版本还在测试中。
- 构建元数据影响比较吗?不影响。+build.1 与 +build.999 优先级相同,比较时会被忽略。
- ^0.2.3 为什么不展开到 <1.0.0?0.x 阶段 API 尚不稳定,npm 规定 ^0.2.3 只锁定到 <0.3.0,^0.0.3 更是只允许 <0.0.4。
- 数据会上传吗?不会。解析、比较、排序全部在浏览器本地完成。
相关工具推荐
Spine动画编辑器
专业的Spine动画预览和编辑工具,支持多引擎导出
热门 新品 本地
SQL查询优化器
分析SQL查询并提供优化建议
热门 新品 本地
JVM启动参数配置
可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项
热门 新品 本地
代码片段转换
不同编程语言间代码片段转换(如Python↔JavaScript)
热门 新品 本地
IP地址查询
查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6
热门 新品 本地
JSON转TypeScript接口
根据JSON数据自动生成TypeScript类型定义
热门 新品 本地