一分钟了解语义化版本
SemVer 的格式是 MAJOR.MINOR.PATCH:破坏性变更提升 MAJOR,向后兼容的新功能提升 MINOR,缺陷修复提升 PATCH。预发布标签(-beta.2、-rc.1)排在正式版之前。比较按数字逐段从左到右进行——2.10.0 > 2.9.9,因为 10 > 9,绝不是按字符串顺序。
范围运算符
- 精确 1.2.3——仅此一个版本。
- 脱字符 ^1.2.3——兼容范围:对于 1.x 是 <2.0.0(允许 1.9.9,阻止 2.0.0)。^0.2.3 的范围是 <0.3.0。
- 波浪号 ~1.2.3——补丁级:<1.3.0。~1.2 等同于 ~1.2.0。
- 通配符 1.2.x、1.*——匹配任意对应段位。
- 比较符 >=1.0.0 <2.0.0——显式边界。
- 或 ||——满足其中任意一个范围即可。
为什么这很重要
锁定文件和包管理器在每次安装时都会解析版本范围。了解 ^ 实际允许什么——以及 ^0.x 的行为等同于 ~0.x——可以避免依赖中出现意外升级(或遗漏安全补丁)。