package.json中版本号前^和~的区别

版本号

官方文档:https://semver.org/lang/zh-CN/spec/v2.0.0.html

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

插入符号 ^

官方文档:https://github.com/npm/node-semver#versions

总结记忆:如果最左侧存在非0数字,则该位置固定不变,右侧自由变换;如果不存在,比如 ^0.0.x 或 ^0.x 或^0.0 这种,则最后一个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

解析插入符号(^)版本范围时,若缺失修订号(patch) ,则默认补为0,但允许该版本号范围内的灵活匹配,即使主版本号(major)和次版本号(minor)均为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

若同时缺失次版本号(minor)和修订号(patch),则均默认补为0,且允许这些版本号范围内的灵活匹配,即使主版本号(major)为0。

^1.x :范围为 >=1.0.0 且 <2.0.0

^0.x 范围为 >=0.0.0 且 <1.0.0

波浪号 ~

官方文档:https://github.com/npm/node-semver#versions

总结记忆:次版本号存在,则右侧自由变换,次版本号不存在,主版本号右侧自由变换。

~1.2.3 范围为 >=1.2.3 < 1.3.0

~1.2 范围为 >=1.2.0 < 1.3.0 (和 1.2.x 一样)

~1 范围为 >=1.0.0 < 2.0.0 (和 1.x 一样)

~0.2.3 范围为 >=0.2.3 < 0.3.0

~0.2 范围为 >=0.2.0 < 0.3.0 (和 0.2.x 一样)

~0 范围为 >=0.0.0 < 1.0.0 (和 0.x 一样)

相关推荐
RFCEO1 个月前
JavaScript基础课程十九、前端工程化基础(npm + Vite)
package.json·javascript前端课程·前端工程化npm基础命令大全·vite创建原生js项目教程·npm安装与卸载依赖包方法·vite启动与打包项目命令·es6模块化在vite中使用
全栈前端老曹4 个月前
【包管理】read-pkg-up 快速上手教程 - 读取最近的 package.json 文件
前端·javascript·npm·node.js·json·nrm·package.json
hellokandy9 个月前
QT QVersionNumber 比较版本号大小
qt·版本号·qversionnumber
big tail1 年前
项目依赖版本修改
npm·pnpm·react·yarn·依赖·package.json
小小工匠1 年前
Maven - 优雅的管理多模块应用的统一版本号
maven·版本号·多模块
极客先躯1 年前
高级java每日一道面试题-2024年11月06日-JVM篇-什么是 Class 文件? Class 文件主要的信息结构有哪些?
java·常量池·版本号·class文件·魔数·访问标志·jvm篇
D@.2 年前
Windows 命令提示符(cmd)中输入 mysql 并收到错误消息“MySQL不是内部或外部命令,也不是可运行的程序或批处理文件?
数据库·mysql·cmd·版本号·paht环境变量
高端客户2 年前
package,json 文件中依赖包的说明
npm·file·link·package.json·本地依赖包·版本标识符
wlym1232 年前
npm 中的 package.json 实践
前端·npm·package.json