Semver语义化版本号和npm包之semver的相关使用

依赖地狱

通俗而言,“依赖地狱”指开发者安装某个软件包时,发现这个软件包里又依赖不同特定版本的其它软件包。随着系统功能越来越复杂,依赖的软件包越来越多,依赖关系也越来越深,这个时候可能面临版本控制被锁死的风险。
因此,Github 起草了一个具有指导意义的,统一的版本号表示规则,称为 Semantic Versioning(语义化版本表示)。该规则规定了版本号如何表示,如何增加,如何进行比较,不同的版本号意味着什么。
官网:semver.org/ 中文版:semver.org/lang/zh-CN/
下面是遵从了Semver规范的React依赖图,截图来自npm.broofa.com:
在这里插入图片描述

Semver语义化版本格式

我们首先简单了解一下语义化版本版本号,标准的版本格式为:X.Y.Z,其中:

X:主版本号,当我们做了不兼容或者颠覆性的更新,修改此版本号。
Y:此版本号,当我们做了向下兼容的功能性修改,修改此版本号。
Z:修订号,当我们做了向下兼容的问题修正,修改此版本号。
其中X、Y和Z必须为非负整数,禁止数字前补零,每个数值都是递增的。

可以看出,遵从了Semver规范的包依赖非常清晰,没有出现循环依赖、依赖冲突等常见问题。

语义化版本范围

版本范围是一组满足指定范围的比较器,一个比较器是由操作符和版本号组成,下面是最原始的操作符:

< 小于;
<= 小于等于;

大于;
= 大于等于;
= 等于;如果没有指定操作符,则默认为等于。
一个范围可由一个或者多个比较器组成,如果有多个,则由双竖线(||)连接。对于包含多个比较器,只要满足其一即可。比如:

范围 >=1.2.7 <1.3.0 ,版本号 1.2.7, 1.2.8, 1.2.99 满足条件,而 1.2.6, 1.3.0
,1.1.0 确不满足。
范围 1.2.7 || >=1.2.9 <2.0.0 ,版本号 1.2.7, 1.2.9, 1.4.6 满足,而 1.2.8 或者 2.0.0 不满足。

关于测试版

Alpha、Beta、Gamma与α、β、λ谐音,是希腊字母前三个字母,用来表示软件开发过程中测试的三个阶段:

  • Alpha:内测版,内部交流或者专业测试人员测试用;
  • Beta:公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合一般用户安装;
  • Gamma:比较成熟的测试版,与即将发行的正式版相差无几;
  • RC:是 Release Candidate 的缩写,意思是发布倒计时,候选版本,处于Gamma阶段,该版本已经完成全部功能并清除大部分的BUG。到了这个阶段只会除BUG,不会对软件做任何大的更改。从Alpha到Beta再到
  • Gamma是改进的先后关系,但RC1、RC2往往是取舍关系。
  • Stable:稳定版。在开源软件中,都有stable版,这个就是开源软件的稳定发行版。

Semantic Vers

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值