版本号
NPM使用语义版本号分为X.Y.Z
三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
- 如果只是修复bug,需要更新Z位。
- 如果是新增了功能,但是向下兼容,需要更新Y位。
- 如果有大变动,向下不兼容,需要更新X位。
~version
- 如果次版本号指定,那么次版本号不变,而补丁版本号可以任意
- 如果次版本号和补丁版本号未指定,那么次版本号和补丁版本号可以任意
~1.2.3 := >=1.2.3 <1.(2+1).0 := >=1.2.3 <1.3.0
~1.2 := >=1.2.0 <1.(2+1).0 := >=1.2.0 <1.3.0
~1 := >=1.0.0 <(1+1).0.0 := >=1.0.0 <2.0.0
~0.2.3 := >=0.2.3 <0.(2+1).0 := >=0.2.3 <0.3.0
~0.2 := >=0.2.0 <0.(2+1).0 := >=0.2.0 <0.3.0
~0 := >=0.0.0 <(0+1).0.0 := >=0.0.0 <1.0.0
~1.2.3-beta.2 := >=1.2.3-beta.2 <1.3.0
复制代码
^version
- 版本号中最左非零位不变,它右侧其他位可以任意
- 如果缺少某个版本号,那么这个版本号可以任意
^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
^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
^1.x := >=1.0.0 <2.0.0
^0.x := >=0.0.0 <1.0.0
复制代码
以上是我自己的理解,感觉比较易懂,附上NPM的语义版本号链接(英文)