Semver 备忘清单 === 这个 semver 语义化版本快速参考备忘清单。 语义化版本标准 ---- ### 介绍 [Semver](http://semver.org/) 是一种语义版本控制规范。 - [语义版本控制规范文档](http://semver.org/) _(semver.org)_ - [npm 的语义版本器](https://docs.npmjs.com/cli/v6/using-npm/semver) _(npmjs.com)_ ### Semver | - | - | |-----------------|------------------------| | `主版本号(MAJOR)` | 当你做了不兼容的 API 修改 | | `次版本号(MINOR)` | 当你做了向下兼容的功能性新增 | | `修订号(PATCH)` | 当你做了向下兼容的问题修正 | ### 简单范围 ``` 1.2.3 =1.2.3 >1.2.3 <1.2.3 >=1.2.3 ``` 请注意,后缀版本(`1.2.3-rc1`)不匹配。 ### 范围 | 范围 | 描述 | Notes | | --- | --- | --- | | `~1.2.3` | 是 `>=1.2.3 <1.3.0` | | | `^1.2.3` | 是 `>=1.2.3 <2.0.0` | | | `^0.2.3` | 是 `>=0.2.3 <0.3.0` | (0.x.x 是特殊的) | | `^0.0.1` | 是 `=0.0.1` | (0.0.x 是特殊的) | | `^1.2` | 是 `>=1.2.0 <2.0.0` | (像 ^1.2.0) | | `~1.2` | 是 `>=1.2.0 <1.3.0` | (像 ~1.2.0) | | `^1` | 是 `>=1.0.0 <2.0.0` | | | `~1` | 相同的 | | | `1.x` | 相同的 | | | `1.*` | 相同的 | | | `1` | 相同的 | | | `*` | 任何版本 | | | `x` | 相同的 | | ### 连字符范围 | 范围 | 描述 | | --- | --- | | `1.2.3 - 2.3.4` | 是 `>=1.2.3 <=2.3.4` | #### 部分向右 | 范围 | 描述 | | --- | --- | | `1.2.3 - 2.3` | 是 `>=1.2.3 <2.4.0` | | `1.2.3 - 2` | 是 `>=1.2.3 <3.0.0` | #### 部分向左 | 范围 | 描述 | | --- | --- | | `1.2 - 2.3.0` | 是 `1.2.0 - 2.3.0` | 当右侧为部分(例如,`2.3`)时,假定缺失的部分为`x`(例如,`2.3.x`)。 如果左边是部分的(例如,`1.2`),则假定缺少的部分为`0`(例如,`1.2.0`)。 ### 有效的语义版本 ```js 0.0.4 1.2.3 10.20.30 1.1.2-prerelease+meta 1.1.2+meta 1.1.2+meta-valid 1.0.0-alpha 1.0.0-beta 1.0.0-alpha.beta 1.0.0-alpha.beta.1 1.0.0-alpha.1 1.0.0-alpha0.valid 1.0.0-alpha.0valid 1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay 1.0.0-rc.1+build.1 2.0.0-rc.1+build.123 1.2.3-beta 10.2.3-DEV-SNAPSHOT 1.2.3-SNAPSHOT-123 1.0.0 2.0.0 1.1.7 2.0.0+build.1848 2.0.1-alpha.1227 1.0.0-alpha+beta 1.2.3----RC-SNAPSHOT.12.9.1--.12+788 1.2.3----R-S.12.9.1--.12+meta 1.2.3----RC-SNAPSHOT.12.9.1--.12 1.0.0+0.build.1-rc.10000aaa-kk-0.1 99999999999999999999999.999999999999999999.99999999999999999 1.0.0-0A.is.legal ``` ### 组合范围 | 范围 | 描述 | | --- | --- | | `>=0.14 <16` | 和 (空格分隔) | | `0.14.x \|\| 15.x.x` | 或 (双竖线分隔) | ### 解释 | 范围 | 描述 | | --- | --- | | `^` | 意思是“兼容” | | `~` | 意思是“相当接近” | | `0.x.x` | 用于“初始开发” | | `1.x.x` | 表示定义了公共 API | ### 预发布 ``` 1.2.3-prerelease+build 1.1.2-prerelease+meta ``` 另见 ---- - [语义化版本号验证正则表达式,支持按编号提取的语言](https://regex101.com/r/vkijKf/1/) - [语义化版本号验证正则表达式,支持按组名称提取的语言](https://regex101.com/r/Ly7O1x/3/)