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

张开发
2026/5/6 15:16:09 15 分钟阅读

分享文章

package.json中版本号前^和~的区别
版本号官方文档https://semver.org/lang/zh-CN/spec/v2.0.0.html版本格式主版本号.次版本号.修订号版本号递增规则如下主版本号当你做了不兼容的 API 修改次版本号当你做了向下兼容的功能性新增修订号当你做了向下兼容的问题修正。插入符号^官方文档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 一样)

更多文章