Skip to content
文章目录

semver语义化版本规范

semver 简介

semver 是 语义化版本(Semantic Versioning)规范 的一个实现,目前是由 npm 的团队维护,实现了版本和版本范围的解析、计算、比较。

semver 的两个概念

固定版本:是指例如 0.4.1、1.2.7、1.2.4-beta.0 这样表示包的特定版本的字符串。 范围版本:是对满足特定规则的版本的一种表示,例如 1.2.3-2.3.4、1.x、^0.2、>1.4.

版本号格式

主版本号MAJOR.次版本号MINOR.修订号PATCH,版本号递增规则如下:

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

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

当主版本号升级后,次版本号和修订号需要重置为 0,次版本号进行升级后,修订版本需要重置为 0。

先行版本号(Pre-release Version)

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

1.0​​.0-alpha
1.0.0-alpha.1
1.0.0-0.3.7
1.0.0-x.7.z.92

以下是一些常见的先行版本号名称:

  • alpha:是内部测试版,一般不向外部发布,会有很多 Bug.一般只有测试人员使用。
  • beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出
  • rc:(Release Candidate) 系统平台上就是发行候选版本。RC 版不会再加入新的功能了,主要着重于除错。

定义依赖版本号

npm 的依赖的规则中,还有 ~、>、<、=、>=、<=、-、||、x、X、* 等符号;当使用 npm install XX 时,被安装的依赖的版本号前会默认加上 ^ 符号。

  • ^ :表示同一主版本号中,不小于指定版本号的版本号
 `^2.2.1` 对应主版本号为 2,不小于 `2.2.1` 的版本号,比如 `2.2.1`、`2.2.2`、`2.3.0` ,主版本号固定
// 当该依赖有最新版本时(eg:2.3.3),npm install 会安装最新的依赖
  • ~ :表示同一主版本号和次版本号中,不小于指定版本号的版本号
`~2.2.1` 对应主版本号为 2,次版本号为 2,不小于 `2.2.1` 的版本号,比如 `2.2.1、2.2.2`,主版本号和次版本号固定
  • >、<、=、>=、<=、-:用来指定一个版本号范围
`>2.1`
 `1.0.0 - 1.2.0`
//注意使用 `-` 的时候,必须两边都有空格。
  • ||:表示或
`^2 <2.2 || > 2.3`
  • x、X、*:表示通配符
 `*` 对应所有版本号
 `3.x` 对应所有主版本号为 3 的版本号