package.json中的版本号

原创
2016/11/04 11:46
阅读数 3.3K

package.json中,指定第三方package的version需要注意

我们现在采用的版本号规则是这样的,比如 1.2.3 1 -> 主版本号(major): 当你做了不兼容的api修改 2 -> 次版本号(minor): 当你做了向下兼容的 功能性新增 3 -> 修订号(patch): 当你做了向下兼容的问题修正

同时,类似 1.0.0-alpha的版本号是低于 1.0.0的,很明显,后者是正式版 1.0.0-alpha.3 将会匹配1.0.0-alpha-7,但是不会匹配beta,或者2.0.0

我们自己用的时候,还是写死吧,不要加 ~,也不要加 ^

~ 曲线 —> 如果指定了次版本号,就匹配次版本号,不然就匹配主版本号的修改

  • ~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 (Same as 1.2.x)
  • ~1 := >=1.0.0 <(1+1).0.0 := >=1.0.0 <2.0.0 (Same as 1.x)
  • ~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 (Same as 0.2.x)
  • ~0 := >=0.0.0 <(0+1).0.0 := >=0.0.0 <1.0.0 (Same as 0.x)
  • ~1.2.3-beta.2 := >=1.2.3-beta.2 <1.3.0

^ 上尖号 —> 对最左边第一个不为0的版本号进行匹配

  • ^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

^ 上尖号的特殊情况

在这里,如果修订号(patch)没有指定,一般是这样的1.2.x,那么x会被认为是0,就是1.2.0. 但是有可能会出现0.0.x或者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

文章参考

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部