版本号组成
一个完整的版本号,由三部分组成:主版本号(major)、次版本号(minor)、修订版本号(patch),简称X.Y.Z,具体含义:
- 主版本号(major):项目(包)做了大量的变更,与旧的版本存在一定的不兼容性等问题。
- 次版本号(minor):做了少量的变更或向下做了兼容。
- 修订版本号(patch):修复上一个版本的bug或向下做兼容。
版本运算符
版本运算符一般是指定一定范围的版本号,主要有~、-、^、<、>等。
接受升级修订版本号 ~
假设您允许针对特定组件的单一次级版本应用一系列补丁(第三位版本号)。在这种情况下,应使用波浪号 ( ~
) 字符。
"bar-a": ~2.1.4,
这指示 npm :"对于包 bar-a ,从 2.1.4 到下一功能部件发行版(可能是 2.2.0 )之间的任何 近似 发行版均可接受。"换言之, 2.1.5 可以接受( 2.1.6 、 2.1.7 等也可接受)但 2.2.0 不可接受。
如果您愿意接受错误修订(补丁)但不希望 npm 自动升级到新功能部件发行版,可使用此命令。
接受升级次版本号 ^
如果可以容忍主发行版中的错误修订 和 次级功能部件发行版(第二三位版本号),可使用插入符号 ( ^ ) 字符。
"baz-a": ^1.2.5
这指示 npm :"对于包 baz-a ,从 1.2.5 到下一主发行版(可能是 2.0.0 )之间的任何 兼容 发行版均可接受。"
在这种情况下, npm 可自动将 baz-a 更新到 1.2.6 或 1.3.0(更新了次版本号)
,但不会
更新到 2.0.0 。
这也是npm默认的规则,打开项目中的package.json文件,这也是最常见的版本运算符。
semver计算器
我们可以使用semver计算器来直接列出对应规则的所有版本列表。
标签
我们经常看到一些库的版本会带 alpha、beta 之类的字样,就以 Vue 为例,有 3.0.0-alpha.13、3.0.0-beta.1、3.0.0-rc.1,这些表示什么意思呢?
- alpha: 表示内部测试版,主要给开发和测试找 bug 用,不建议用户下载 beta 表示公开测试版。
- beta: 该版本相对于Alpha版已有了很大的改进,消除了严重的错误,但还是存在着一缺陷,需要经过多次测试来进一步消除。这个阶段的版本会一直加入新的功能。
- rc: 可以提前尝试一些功能 rc 是 Release Candidate(候选版本)的缩写,表示该版本功能不再增加,和最终发布版功能一样,有点像预览版,然后可能再改改一些小 bug,就会到正式的版本了。