当前位置: 首页 > news >正文

npm包版本号详解

npm包在发布时,需要按照包版本语义化中的约定去更新设置,例如我们常见的1.0.01.0.10.0.1等这样的版本号,那么这些数字分别代表什么意思呢?下面我们将详细介绍。

npm版本号的组成

一个完整的版本号,由三部分组成:主版本号(major)、次版本号(minor)、修订版本号(patch),简称X.Y.Z,具体含义:

  • 主版本号(major):项目(包)做了大量的变更,与旧的版本存在一定的不兼容性等问题。
  • 次版本号(minor):做了少量的变更或向下做了兼容。
  • 修订版本号(patch):修复上一个版本的bug或向下做兼容。

版本号变更的一般规则:

  • 版本号只升不降,不得在数字前面加0。例如不能是1.01.0,应该是1.0.0
  • 当主版本号升级时,次版本号和修订版本号需要归零。例如1.1.1->2.0.0
  • 当次版本号升级时,主版本号不变,修订版本号归零。例如1.1.1->1.2.0
  • 当修订版本号升级时,主版本和次版本号都不变。例如1.1.1->1.1.2
  • 一般第一个正式版本应为1.0.0
  • 处于开发测试阶段的版本一般为0.y.z,如果不发布,则默认为0.0.0,如果发布第一个测试版本则是0.1.0,如果修复第一个测试版本则是0.1.1,如果更新第二个测试版本则是0.2.0

版本标识符(标签)

格式:Major.Minor.Patch-Identifier.1,其中Identifier就是代表标识符,和版本号之间使用-隔离,后面则是当前标识符的版本版本号,每升级一次则+1

标识符含义说明
demodemo版本用于验证问题的版本
dev开发版多用于开发阶段,bug较多,功能不完善
alphaα版本内部版本,测试用,代表当前可能有很大的变动
beta测试版本(β版本)测试版本,代表版本已开始稳定,但是还有bug
stable稳定版本
latest最新版本安装时不知道版本号时的默认安装最新版本

希望安装带标签的版本,必须明确指定标签或者版本号,否则安装的是最新的不带标签的版本。

版本运算符

版本运算符一般是指定一定范围的版本号,主要有~-^<>等。

~ 版本号只指定主版本号或者次版本号,例如:

版本范围匹配版本号
~22.Y 或者 2.0.0 ≤ V < 4.0.0
~2.12.1.Z 或者 2.1.0 ≤ V < 2.2.0
~2.1.12.1.1 ≤ V < 2.2.0

^ 版本号
匹配第一个非0版本号

版本范围匹配版本号
^2.1.22.1.2 ≤ V < 3.0.0
^0.1.20.1.2 ≤ V < 0.2.0
^2.Y.Z2.0.0 ≤ V < 3.0.0

npm 安装包时,默认使用 ^ 匹配版本。

~^ 对比

版本范围匹配版本号说明
~2.1.02.1.0 ≤ V < 2.2.0主版本号和次版本号相同
^2.1.02.1.0 ≤ V < 3.0.0主版本号相同
http://www.lryc.cn/news/35242.html

相关文章:

  • ubuntu 系统安装docker——使用docker打包python项目,整个流程介绍
  • MySQL事务篇
  • 【Redis】搭建分片集群
  • RoCEv2网络部署实践
  • 【HashMap】| 深度剥析Java SE 源码合集Ⅱ | 你会吗?
  • 剑指 Offer 39. 数组中出现次数超过一半的数字
  • 使用python控制摄像头
  • Linux文件系统
  • 扬帆优配|引活水 增活力 促转型 创业板助力实体经济高质量发展
  • 【c++】:STL模板中string的使用
  • 华为OD机试用Python实现 -【连续字母长度 or 求第 K 长的字符串长度】 | 2023.Q1 A卷
  • 前端处理并发的最佳实践
  • 【SOP 】配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)
  • [MySQL索引]4.索引的底层原理(三)
  • 2023金三银四应届生求职面试指南
  • 【数据结构】解决顺序表题的基本方法
  • HDFS如何解决海量数据存储及解决方案详解
  • 认识CSS值如何提高写前端代码的效率
  • MySQL知识点全面总结3:Mysql高级篇
  • Spring注解开发之组件注册(二)
  • 【web前端开发】CSS最常用的11种选择器
  • 微电影广告发展的痛点
  • uniapp新手入门
  • linux segfault at 问题定位实践
  • SpringCloud+SpringCloudAlibaba
  • 华为OD机试 - 路灯照明(C 语言解题)【独家】
  • Linux程序替换
  • @JsonFormat @DataTimeFormat 时间格式
  • 带你玩转modbusTCP通信
  • 2021牛客OI赛前集训营-提高组(第三场)T2交替