【Node.js】semver 语义化版本控制

semver(语义化版本控制)是一种约定式的版本命名规范,它将版本号分为主版本号、次版本号和修订号,并按照 MAJOR.MINOR.PATCH 的格式进行编号。

1)版本号释义:

  • MAJOR(主版本号):当你做了不兼容的 API 修改。
  • MINOR(次版本号):当你做了向下兼容的功能性新增。
  • PATCH(修订号):当你做了向下兼容的问题修正。

2)波浪号(Tilde,~):

~ 允许变动 PATCH,但不允许变动 MINOR。例如,~1.2.3 意味着你可以接受 1.2.4、1.2.5,但是不接受 1.3.0。

举例:~1.2.3 包含 1.2.3 到 1.2.x,不包含 1.3.0。

3)插入符号(Caret,^):

^ 允许变动 MINOR 和 PATCH,但不允许变动 MAJOR。例如,^1.2.3 允许升级到 1.3.0、1.4.0 甚至 1.9.9,但不允许升级到 2.0.0。

举例:^1.2.3 包含 1.2.3 到 <2.0.0。

4)语义化管理的好处:

  • 明确依赖关系:保证了依赖版本的兼容性。
  • 沟通清晰:开发者之间可以通过版本号快速理解修改的性质。
  • 自动化管理:方便使用各类包管理工具(如 npm,yarn)进行依赖管理和升级。

5)常见的版本号范围表达方式:

  • 精确版本号:如 1.2.3,只接受这个确切的版本。
  • 范围版本号:如 >=1.2.3,接受大于或等于 1.2.3 的所有版本。
  • x与 * 限制符:如 1.2.x 或 * 分别代表 1.2 系列的任何版本和任何版本不加限制。
相关推荐
iDao技术魔方9 小时前
Node.js v26.5.0 深度解读:import Text、流式 ReadableStreamTee、以及隐藏的安全加固浪潮
安全·node.js
BAIGAOa11 小时前
还在手写 if-else 响应按键?我用 React-Ink 搭配键盘引擎解决了
node.js
Excel效率人14 小时前
飞书自动回复机器人开发:@机器人自助查询物流信息
机器人·node.js·飞书
先吃饱再说1 天前
从“地狱”到“楼梯”再到“同步写法”:Node.js 异步的二十年与Node内置fs模块详解
node.js
知识收割者1 天前
Nodejs也能写Agent - 10.LangChain篇 - 初识LangChain
node.js
HjhIron1 天前
Node.js 内置模块之 path 与 fs:从路径拼接到异步演进
node.js·promise
触底反弹1 天前
🚀 Node.js path 和 fs 模块,从回调地狱到 async/await 的进化之路!
javascript·后端·node.js
sugar__salt1 天前
Node.js path 与 fs 核心模块完全指南 —— 从路径处理到异步流程控制
javascript·node.js
屑曦晨1 天前
npm 全局包迁移指南:从系统目录到用户目录
npm·node.js
moMo1 天前
Node.js 文件操作:path 路径与 fs 异步流程
node.js