版本格式
主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号(major):当你做了不兼容的 API 修改
- 次版本号(minor):当你做了向下兼容的功能性新增
- 修订号(patch):当你做了向下兼容的问题修正
先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸
先行版本号
先行版本号的优先级低于相关联的标准版本,可以被标注在 patch 之后,连接号“-”加上以句点分隔的标识符(标识符必须属于[0-9A-Za-z-])组成,数字类型前方禁止补 0。例如:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7。
版本编译元数据
可以被标注在 patch 之后,先加上一个加号再加上以句点分隔的标识符(标识符必须属于[0-9A-Za-z-])组成,当判断版本的优先层级时,版本编译元数据可(SHOULD)被忽略。
版本的优先级
判断优先层级时,必须把版本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较。由左到右依序比较每个标识符,第一个差异值用来决定优先层级:主版本号、次版本号及修订号以数值比较,例如:1.0.0 < 2.0.0 < 2.1.0 < 2.1.1。当主版本号、次版本号及修订号都相同时,改以优先层级比较低的先行版本号决定。例如:1.0.0-alpha < 1.0.0。有相同主版本号、次版本号及修订号的两个先行版本号,其优先层级必须通过由左到右的每个被句点分隔的标识符来比较,直到找到一个差异值后决定:只有数字的标识符以数值高低比较,有字母或连接号时则逐字以 ASCII 的排序来比较。数字的标识符比非数字的标识符优先层级低。若开头的标识符都相同时,栏位比较多的先行版本号优先层级比较高。范例:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1
npm 中声明包的更新类型
- patch releases:1.0 or 1.0.x or ~1.0.4
- minor releases:1 or 1.x or ^1.0.4
- major releases:* or x
npm 命令生成先行版本号
从 npm6.4.0 开始,可以使用 npm version 的–preid 选项
1 2 3 4 5 6 |
$ npm version prerelease --preid=alpha v0.1.1-alpha.0 $ npm version prerelease --preid=alpha v0.1.1-alpha.1 $ npm version prerelease --preid=alpha v0.1.1-alpha.2 |