一、什么是语义化版本

语义化版本的英文是:Semantic Versioning
它是由 Gravatars 创办者兼 GitHub 共同创办者 Tom Preston-Werner 所建立的一个有关如何命名软件和库(包)版本的规范,用以解决在大型项目中对依赖的版本失去控制的问题。

例如你可能因为害怕不兼容而不敢去更新依赖

现在 Semantic Versioning 已经在开源社区中得到了广泛的认同,Node.js 的包管理工具 npm 也完全基于 Semantic Versioning 来管理依赖的版本。

而 SemVer 是语义化版本的一个具体实现,目前是由 npm 的团队维护的,实现了版本和版本范围的解析、计算、比较。
SemVer 的 github 仓库:https://github.com/semver/semver

二、SemVer 规范

1. 基本格式

版本格式:**主版本号.次版本号.修订号 (major.minor.patch)**

  • 主版本号:当你做了不兼容的 API 修改
  • 次版本号:当你做了向下兼容的功能性新增
  • 修订号:当你做了向下兼容的问题修正

    先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

2. 先行版本号

先行版本号可以作为发布正式版之前的版本。
格式是在修订号后面加上一个连接号-,再加上一连串以点.分割的标识符,标识符可以由英文、数字和连接号组成[0-9A-Za-z-]

  • -aplha:是内测版,一般不想外部发布,会有很多 bug。一般只有测试人员使用。
  • -beta:也是测试版本,这个阶段的版本会一直加入新的功能。再 Alpha 版之后推出
  • -rcRelease Candidate):发行候选的版本。RC 版不会再加入新的功能了,主要是重于排错。

3. 看 react 的 SemVer 规范

React SemVer 规范
image.png
image.png

参考资料

《什么是语义化版本?》