# SemVer 语义化版本工具 - npm 版本范围检查、比较排序、版本递增

> 免费在线 SemVer 工具：校验 SemVer 2.0.0 版本号，比较与排序，按 npm 规则递增版本，检查 ^ ~ x-range 等 npm 版本范围，并用大白话解释范围含义与匹配的版本。

- 网址: https://qilingtools.com/zh/semver
- 分类: 开发工具 (https://qilingtools.com/zh/dev)
- 标签: [开发](https://qilingtools.com/zh/tags/dev), [运维部署](https://qilingtools.com/zh/tags/devops)
- 最后更新: 2026-10-26
- 价格: 免费，无需注册
- 隐私: 在浏览器本地处理，文件不上传服务器

package.json 里的 ^1.2.3、~0.4、>=2 <3 || 4.x 到底会装上哪些版本？把范围粘贴进来，工具按 npm 使用的 node-semver 规则逐项“脱糖”成基本比较器（例如 ^1.2.3 → >=1.2.3 <2.0.0-0），用大白话说明含义，并提示预发布版本的特殊规则：默认只有范围里写了同一 major.minor.patch 的预发布标签时，2.0.0-beta.1 这样的版本才会匹配。可以测试单个版本，也可以粘贴一整串版本（例如 npm view 包名 versions 的输出），一眼看出哪些满足，得到满足范围的最高、最低版本以及范围允许的最低版本（minVersion）。另外三个页签分别用来解析校验版本号（指出前导零、空标识符等不合法原因）、比较两个版本并对一组版本排序（遵循 SemVer 优先级，1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0），以及按 npm version 的规则一次算出 major、minor、patch、premajor、preminor、prepatch、prerelease 的递增结果。计算结果与 node-semver 7 逐项对照测试过。

## 使用步骤

1. 在“范围检查”中输入 npm 版本范围，查看脱糖后的比较器和含义
2. 输入单个版本或粘贴版本列表，查看哪些满足及最高 / 最低满足版本
3. 切换到解析校验、比较排序或版本递增页签处理具体版本号

## 功能特点

- npm / node-semver 范围语义：^ ~ x-range、连字符范围、||、比较器
- 范围脱糖展开与大白话解释
- 预发布版本规则与 includePrerelease 选项
- 批量检查版本列表，最高 / 最低满足版本、minVersion
- SemVer 2.0.0 校验并指出不合法原因
- 按优先级比较、排序、去重，显示差异级别
- major / minor / patch / pre* 递增，与 npm version 一致

## 常见问题

### ^ 和 ~ 有什么区别？

^ 允许不改变最左边非零位的更新：^1.2.3 等于 >=1.2.3 <2.0.0，可以升级次版本和修订号；但在 0.x 阶段更保守，^0.2.3 只到 <0.3.0，^0.0.3 只允许 0.0.3。~ 只允许修订号更新：~1.2.3 等于 >=1.2.3 <1.3.0，~1 等于 >=1.0.0 <2.0.0。

### 为什么 2.0.0-beta.1 不满足 >=1.0.0？

这是 npm 的预发布规则：预发布版本通常不稳定，所以只有当范围里某个比较器本身就带预发布标签、并且 major.minor.patch 相同（例如 >=2.0.0-alpha），同一版本号的其它预发布版才会匹配。如果确实希望把预发布版本都算进来，可以勾选“包含预发布版本”（对应 node-semver 的 includePrerelease 选项）。

### 脱糖结果里的 <2.0.0-0 是什么意思？

-0 是最小的预发布标签，<2.0.0-0 表示比 2.0.0 的所有预发布版本都小，也就是排除了 2.0.0-alpha 之类的版本。node-semver 用这种写法保证 ^1.2.3 不会意外匹配到下一个大版本的预发布版。

### 版本号比较时，构建元数据会影响结果吗？

不会。按 SemVer 2.0.0，+ 后面的构建元数据（例如 1.0.0+20240101）不参与优先级比较，1.0.0+a 和 1.0.0+b 被视为同一版本。排序时为了结果稳定，本工具在主版本相同的情况下再按构建元数据排列，与 semver.compareBuild 一致。

## 相关工具

- [JSON 格式化](https://qilingtools.com/zh/json): 免费在线 JSON 格式化：一键美化、压缩，实时语法校验并定位到出错行列，支持树形视图折叠、键名排序、转义与去转义、Unicode 转中文、复制下载，数据不上传。
- [Base64 编解码](https://qilingtools.com/zh/base64): 免费在线 Base64 编码解码工具：支持中文 UTF-8、URL 安全变体，文本与 Base64 互转，实时转换，本地处理不上传。
- [URL 编解码](https://qilingtools.com/zh/url-encode): 免费在线 URL 编码解码工具：encodeURIComponent 与 encodeURI 两种模式，处理中文、空格与特殊符号，本地实时转换不上传。
- [JWT 解析](https://qilingtools.com/zh/jwt): 免费在线 JWT 解析工具：解码 JWT 的 Header 与 Payload，展示过期时间、签发时间等，本地解析不上传，保护令牌安全。
- [时间戳转换](https://qilingtools.com/zh/timestamp): 免费在线 Unix 时间戳转换工具：时间戳与日期互转，自动识别秒/毫秒，显示本地时间、UTC、ISO 8601 和相对时间，实时更新。
- [哈希计算](https://qilingtools.com/zh/hash): 免费在线哈希/摘要计算工具：对文本或文件计算 SHA-1、SHA-256、SHA-384、SHA-512，使用浏览器加密接口本地完成，文件不上传。
- [UUID 生成](https://qilingtools.com/zh/uuid): 免费在线 UUID 生成器：使用加密安全随机数批量生成符合 RFC 4122 的 UUID v4，可大写、去连字符、加花括号，一键复制。
- [进制转换](https://qilingtools.com/zh/base-convert): 免费在线进制转换工具：二进制、八进制、十进制、十六进制及任意 2–36 进制互转，支持大整数（BigInt），本地实时计算。
