npm语义化版本和版本运算符

版本号组成

一个完整的版本号,由三部分组成:主版本号(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,这些表示什么意思呢?

  1. alpha: 表示内部测试版,主要给开发和测试找 bug 用,不建议用户下载 beta 表示公开测试版。
  2. beta: 该版本相对于Alpha版已有了很大的改进,消除了严重的错误,但还是存在着一缺陷,需要经过多次测试来进一步消除。这个阶段的版本会一直加入新的功能。
  3. rc: 可以提前尝试一些功能 rc 是 Release Candidate(候选版本)的缩写,表示该版本功能不再增加,和最终发布版功能一样,有点像预览版,然后可能再改改一些小 bug,就会到正式的版本了。
相关推荐
开心工作室_kaic1 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
刚刚好ā1 小时前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue
沉默璇年2 小时前
react中useMemo的使用场景
前端·react.js·前端框架
yqcoder2 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
2401_882727573 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
SoaringHeart3 小时前
Flutter进阶:基于 MLKit 的 OCR 文字识别
前端·flutter
会发光的猪。3 小时前
css使用弹性盒,让每个子元素平均等分父元素的4/1大小
前端·javascript·vue.js
天下代码客3 小时前
【vue】vue中.sync修饰符如何使用--详细代码对比
前端·javascript·vue.js
猫爪笔记3 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
前端李易安4 小时前
Webpack 热更新(HMR)详解:原理与实现
前端·webpack·node.js