~
允许小版本迭代
- 如果有缺省值,缺省部分任意迭代;
- 如果没有缺省值,只允许补丁即修订号(Patch)的迭代
eg.:
~1.2.3:>=1.2.3 <1.3.0~1.2:>=1.2.0 < 1.3.0(相当于1.2.x)~1:>=1.0.0 <2.0.0(相当于1.x)~0.2.3:>=0.2.3 <0.3.0~0.2:>=0.2.0 <0.3.0(相当于0.2.x)~0:>=0.0.0 <1.0.0(相当于0.x)~1.2.3-beta.2:>=1.2.3-beta.2 <1.3.0(注意,在1.2.3版本中,允许使用大于等于beta.2的先行版本号,而除1.2.3之外的版本号不允许使用先行版本号,所以此处1.2.3-beta.4是允许的,而1.2.4-beta.2是不允许的)
^
允许大版本迭代
- 允许从左到右的第一段不为
0那一版本位+1迭代(左闭右开); - 如果有缺省值,且缺省值之前没有不为0的版本位,则允许缺省值的前一位版本
+1迭代
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.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^1.2.3-beta.2:>=1.2.3-beta.2 <2.0.0(注意,在1.2.3版本中,允许使用大于等于beta.2的先行版本号,而除了1.2.3之外的版本号不允许使用先行版本号,所以此处1.2.3-beta.4是允许的,而1.2.4-beta.2是不允许的);^0.0.3-beta:>=0.0.3-beta <0.0.4(同上,此处0.0.3-pr.2是允许的)