严格版本和范围分开输入
版本需要完整三段数字;范围可使用 1.2 或 ^0.2.3 等简写。空范围及空 OR 分支是通配条件,不会被自动忽略。
开发者工具
检查依赖的版本范围、比较两个版本,或预览下一次发版的版本号。
输入仅在当前浏览器中处理,不会发送到服务器。
输入内容或载入示例以开始。
只接受严格 SemVer 2.0.0 版本:不修剪首尾空格,不接受 v 前缀或缺少字段。核心版本数字和纯数字预发布标识符不可有前导零;构建标识符可以。
npm 范围接受 ^、~、比较符、x、连字符范围和 ||。空范围及空 OR 分支按通配符处理。
默认排除预发布,除非同组比较符明确指定了相同 major.minor.patch 的预发布版本。
构建元数据不影响优先级。排序时,优先级相同的版本保留输入顺序。
工具上限:1000 行、100000 个 UTF-16 代码单元;每个版本 256 字符、范围 4096 字符。核心版本数字和纯数字预发布标识符不得大于 9007199254740991;构建标识符不受此数值上限约束。
输入或选项已更改,请更新结果后再导出。
SemVer 计算器适合排查这样的疑惑:一个 beta 版本明明更新,为什么仍不满足依赖范围?先区分优先级和匹配条件,再决定是否修改范围。
版本号比较不能直接按文本排序。语义化版本中的 1.10.0 高于 1.9.0;预发布标识符也有数字与文本的比较规则。
SemVer 计算器同时显示展开的 npm 范围与逐行结果。即使数字满足上下界,默认的预发布规则仍可能排除该版本。
1.2.3+build.1 与 1.2.3+build.7 优先级相同。排序保留它们的输入顺序,构建标签不会把同一版本伪装成更新版本。
版本需要完整三段数字;范围可使用 1.2 或 ^0.2.3 等简写。空范围及空 OR 分支是通配条件,不会被自动忽略。
默认关闭。打开后改变范围匹配,不放宽版本语法。遇到 0.x 范围时,应查看展开后的比较符条件。
示例与清空都先展示完整输入和选项预览,应用后才生效,并可撤销。自动模式等待 350 毫秒;关闭后可按 Ctrl/Cmd+Enter 运行。
每行输入一个版本,测试 npm 比较符、插入符、波浪号、通配符、连字符范围和 OR 组合。
按主版本、次版本、补丁和预发布标识符比较;构建元数据不决定新旧。
支持升序和降序。无效行保留在末尾并标注原行号,相同优先级维持输入顺序。
支持 major、minor、patch、premajor、preminor、prepatch 和 prerelease,仅生成结果,不自动改写原版本。
~1.2.3 接受从 1.2.3 到低于 1.3.0 的稳定版本;^1.2.3 则到低于 2.0.0。^ 保留最左侧非零部分,因此 ^0.2.3 不含 0.3.0,^0.0.3 不含 0.0.4。
通常不会。SemVer 计算器遵循 npm:开关关闭时,同组比较符须明确提及相同 major.minor.patch 的预发布版本。是否为线上最新版本不改变这里的判断。
可以记录构建编号或提交标识,但不影响优先级。只有 + 后内容不同的版本比较相等,排序保留输入顺序。
只排序严格 SemVer 版本。v1.2.3、1.10-alpine3 等标签会标为无效并保留在末尾,不会被静默转换成其他版本。
选择预发布递增并将标识符设为 alpha。从 1.2.3 执行 premajor 得到 2.0.0-alpha.0;已有预发布可递增序号,标识符留空则保留已有标识符。
版本结果不符合预期?