无需登录 数据私有 本地保存

语义版本范围测试器 - 检查版本是否满足约束

19
0
0
0

语义版本范围测试器

检查一个版本号是否满足给定的语义版本约束范围(Semantic Versioning Range)

快捷预设(点击填入):

版本解析详情
常见问题与知识点
什么是语义版本控制(SemVer)?

语义版本格式为 MAJOR.MINOR.PATCH(主版本.次版本.修订号)。 主版本号变更表示不兼容的API修改,次版本号变更表示向下兼容的功能新增,修订号变更表示向下兼容的问题修复。 可选后缀 -prerelease 表示预发布版本(如 1.0.0-alpha.1),+build 表示构建元数据。

^(插入号)和 ~(波浪号)的区别?

^1.2.3:允许不改变最左边非零数字的更新 → >=1.2.3 <2.0.0-0(可更新次版本和修订号)。
~1.2.3:只允许修订号级别的更新 → >=1.2.3 <1.3.0-0(仅可更新修订号)。
注意:对于 0.x.y 版本,^ 的行为更保守(^0.2.3>=0.2.3 <0.3.0-0)。

版本范围中的通配符(x, *)如何使用?

1.2.x 匹配 >=1.2.0 <1.3.0-0(1.2系列任意修订号)。
1.x 匹配 >=1.0.0 <2.0.0-0(1系列任意版本)。
*x.x.x 匹配所有版本。通配符非常适合用于宽松的依赖管理。

预发布版本在范围中如何匹配?

预发布版本(如 1.0.0-alpha)优先级低于正式版(1.0.0-alpha < 1.0.0)。 在 ^~ 范围中,通常不会自动包含预发布版本,除非范围的基础版本本身也是预发布版本。 使用 >=1.0.0-alpha <1.0.0 可精确匹配预发布范围。

连字符范围(-)怎样使用?

1.0.0 - 2.0.0 等价于 >=1.0.0 <=2.0.0(包含两端)。
如果连字符右侧版本不完整(如 1.0 - 2),缺失部分会用0补全,右侧版本会使用该部分的最大值范围。 注意区分预发布标签中的连字符(如 1.0.0-alpha)和范围连字符(需空格包围)。

多个约束如何组合(AND/OR)?

空格分隔多个条件表示 AND(同时满足):>=1.0.0 <2.0.0
|| 分隔表示 OR(满足其一):1.0.0 || 2.0.0
逗号 , 也可作为AND分隔符(等同于空格)。这是npm/Node.js生态中的标准做法。