【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 系列的任何版本和任何版本不加限制。
相关推荐
编程的一拳超人20 小时前
【元宝搜索开发者征文大赛】四语实战:Java/Python/Go/Node.js 构建 AI 搜索应用全攻略
java·python·golang·node.js·agent
lucas_AI20 小时前
今年 2 月就修好的漏洞,10 月才炸:HTTP2Shell 把 Node、Python 一锅端
node.js
SEO_juper2 天前
Node.js 全站死链检测工具:从 sitemap 出发一次找全 404
开发语言·人工智能·python·node.js·seo·外贸独立站
孟陬3 天前
解决动态 import 类型 Any 痼癖
typescript·node.js·bun
Dumbness3 天前
后台管理员把自己锁在门外:RBAC 里「自己的权限只能由别人来减」
安全·node.js
攻城狮白玉3 天前
Node.js 发布紧急安全更新:10 个漏洞,8 枚危险证书被拉黑。附AI修复提示词
node.js
Json____3 天前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
Dumbness4 天前
写 MCP 服务器踩的坑:stdout 是协议通道,一行不带换行的日志就能让客户端超时
node.js·mcp
flash俊杰4 天前
ContentPart 联合类型实战:不碰存量消息,怎么给 ChatMessage 加图片
node.js
Json____4 天前
用 Node.js + Vue3 打造一个家居装修 AI 智能咨询助手
node.js·agent·网站开发·智能体·wwwoop.com