Semver 计算器

在你的浏览器中解析、比较、范围检查、递增并强制转换语义化版本。你键入的版本留在你的设备上。

你键入的版本和范围在浏览器本地求值,绝不会上传。

需要一个快速的唯一 id?试试 UUID 生成器。

关于 Semver 计算器

这款 semver 计算器是一套语义化版本(SemVer)工具箱,能应对你与版本号打交道的一切。把像 1.2.3-beta.1+build.42 这样的版本解析成它的 major、minor、patch、预发布和构建元数据;比较两个版本,看哪个更新、以及它们在哪一级有差异;检查某个版本是否满足像 ^1.2.3、~1.2、1.x 或 >=1.0.0 <2.0.0 这样的 npm 范围;按 major、minor、patch 或任意预发布步进递增一个版本;并把像 v1.2 这样宽松的字符串强制转换成一个干净的 semver。它专为每天都要推敲依赖范围的开发者、包作者和发布工程师而打造。由 npm 所用的同一个 semver 库驱动,每一次计算都在你的浏览器中运行,因此你键入的版本留在你的设备上。

功能特性

如何使用 Semver 计算器

  1. 选择一种模式:解析、比较、范围、递增或强制转换。
  2. 键入一个版本(并根据模式键入第二个版本或一个范围)。
  3. 在输入下方的信息行和徽章中读取实时结果。
  4. 复制你需要的值,例如升级后的版本或差异级别。

示例

输入

version: 1.5.0
range:   ^1.2.3

输出

1.5.0 satisfies ^1.2.3  ✓
1.6.0 → pass   2.0.0 → fail

脱字号范围 ^1.2.3 允许直至(但不包括)下一个 major(2.0.0)的任何版本。

常见错误与故障排除

常见问题

^1.2.3 范围允许什么?
脱字号范围 ^1.2.3 允许任何不改变最左侧非零数字的版本,因此它匹配从 1.2.3 直至(但不包括)2.0.0。对于 0.x 版本,规则收紧:^0.2.3 允许从 0.2.3 直至 0.3.0。
预发布版本与稳定发布相比如何比较?
预发布的优先级低于其关联的发布,因此 1.0.0-rc.1 小于 1.0.0。预发布逐字段比较:标识符会被排序,数值标识符排在更长的或字母数字的标识符之下。
~1.2 和 ^1.2 有什么区别?
波浪号 ~1.2 允许 1.2 范围内的 patch 级变更(>=1.2.0 <1.3.0),而脱字号 ^1.2 允许直至下一个 major 的 minor 和 patch 变更(>=1.2.0 <2.0.0)。请用「范围」模式查看示例版本通过或不通过。
这款 semver 计算器如何处理构建元数据?
加号之后的构建元数据(例如 +build.42)会被解析并显示,但在比较优先级时会被忽略,因此 1.0.0+a 和 1.0.0+b 被视为相等的版本。
强制转换一个版本是做什么的?
强制转换会通过尽力找到第一个 major.minor.patch 序列,把一个宽松的字符串变成一个有效的 semver。于是 v1.2 变成 1.2.0,1.2.3.4 变成 1.2.3,release-3.1 变成 3.1.0;缺失的部分默认为零。
我可以按哪些发布类型递增?
你可以按 major、minor、patch、premajor、preminor、prepatch 或 prerelease 升级。这些 pre- 变体会在所选部分上开启一条预发布线,例如对 1.2.3 做 premajor 会得到 2.0.0-0。

相关工具

全部 ArrayKit 工具