🔢 语义版本检查器

Semantic Versioning (SemVer) 在线验证与比较工具

📋 版本号验证

⚖️ 版本比较

🎯 版本范围匹配

🔼 版本号递增

📖 SemVer 规范速查

版本格式MAJOR.MINOR.PATCH
MAJOR不兼容的API修改
MINOR向下兼容的功能新增
PATCH向下兼容的问题修复
预发布1.0.0-alpha.11.0.0-beta.2
构建元数据1.0.0+20130313144700
范围 ^兼容版本:^1.2.3 = >=1.2.3 <2.0.0
范围 ~近似版本:~1.2.3 = >=1.2.3 <1.3.0

常见问题

什么是语义版本(SemVer)?

语义版本(Semantic Versioning,简称SemVer)是一套版本号管理规范,格式为 MAJOR.MINOR.PATCH(主版本.次版本.补丁版本)。当你做了不兼容的API修改时增加主版本号,新增向下兼容功能时增加次版本号,修复向下兼容问题时增加补丁版本号。这套规范被npm、Maven等几乎所有现代包管理器采用。

^ 和 ~ 有什么区别?

^1.2.3 表示兼容版本,允许更新到不改变主版本号的最新版本(>=1.2.3 <2.0.0),适用于希望自动获取新功能的场景。~1.2.3 表示近似版本,只允许补丁级别的更新(>=1.2.3 <1.3.0),更加保守安全,适用于生产环境的依赖锁定。

预发布版本(Prerelease)是什么?

预发布版本通过在版本号后添加连字符和标识符来表示,如 1.0.0-alpha.12.0.0-beta.31.0.0-rc.1。预发布版本的优先级低于对应的正式版本,常用标识符包括:alpha(内部测试)、beta(公开测试)、rc(候选发布版)。

如何在package.json中正确使用版本范围?

在package.json的dependencies中,推荐使用 ^ 范围符号。例如 "lodash": "^4.17.21" 表示接受所有4.x.x版本。对于0.x.x版本要特别小心——^0.2.3 等价于 ~0.2.3,因为0.x版本的主版本号变化可能包含不兼容修改。