package.json中的版本号

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

文章参考

转载于:https://my.oschina.net/boogoogle/blog/781319

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值