blog icon indicating copy to clipboard operation
blog copied to clipboard

semver

Open anjia opened this issue 6 years ago • 1 comments

语义化版本控制规范

SemVer: Semantic Version, 语义化版本

  • 规范版本号的格式,来约束版本号的配置和增长
  • 实现版本号的解析和比较,eg. ^ ~ >= > <= <

主版本号.次版本号.修订号

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

x.y.z-alpha 内测版 x.y.z-beta 公测版 x.y.z-stable 稳定版

初始化开发版本 0.1.0 正式上线了一次,就 1.0.0

主版本号为0时,是为了做快速开发

anjia avatar Sep 26 '18 04:09 anjia

<
<=
>
>=
=     # 若没有指定operator,则默认是它

1.2.7
>=1.2.7

>=1.2.7 <1.3.0
1.2.7 || >=1.2.9 <2.0.0

1.2.3-alpha.3    # [major, minor, patch]至少有一个匹配

1.2.3 - 2.3.4
1.2.x 1.X 1.2.* *

# ~ 只变最小的版本号。即如果指定了minor,则允许patch改变;如果未指定minor,则允许minor改变
~1.2.3
~1.2
~1

# ^ 大版本号不变就行。左边第一个不为0的数字须一致,其余>=
^1.2.3
^0.2.5
^0.0.4

# eg.
^1.2.3 := >=1.2.3 <2.0.0
^0.2.3 := >=0.2.3 <0.3.0
^0.0.3 := >=0.0.3 <0.0.4

^1.2.3-beta.2 := >=1.2.3-beta.2 <2.0.0
^0.0.3-beta := >=0.0.3-beta <0.0.4

^1.2.x := >=1.2.0 <2.0.0
^0.0.x := >=0.0.0 <0.1.0
^0.0 := >=0.0.0 <0.1.0

及一系列函数,详见:https://github.com/npm/node-semver

anjia avatar Sep 26 '18 04:09 anjia