版本号
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 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 一样)