composer中的版本约束1.0.*和~1.0有什么区别

1.0.* 匹配 1.0.0 到 1.0.999 的所有修订版,等价于 >=1.0.0 且 =1.0.0 且 <1.1.0,两者在实际使用中行为相同。

composer中的版本约束1.0.*和~1.0有什么区别

在 Composer 中,版本约束 1.0.*~1.0 看起来相似,但它们的含义和行为有明显区别。理解这些差异有助于更精确地控制依赖包的更新范围。

1.0.*:匹配指定主版本和次版本下的所有修订版本

这个写法表示允许安装 1.0 开头的所有版本,即匹配 1.0.0 到 1.0.999… 的任意修订版(patch)。

它等价于:

>=1.0.0

也就是说,只要主版本是 1,次版本是 0,任何 patch 版本都可以接受。例如:1.0.1、1.0.5、1.0.20 都符合要求,但 1.1.0 不行。

~1.0:波浪线操作符,按“最小边界”进行限制

波浪线 ~ 的规则是:锁定最低指定版本的**最后一个数字位**,允许在其后的修订中升级。

对于 ~1.0,Composer 会理解为:

>=1.0.0

这意味着它允许所有 1.x 版本,直到但不包括 2.0.0。比如 1.0.5、1.3.0、1.9.9 都可以安装。

注意:~1.0 实际上等同于 >=1.0.0 ,因为它把 1.0 当作“最小边界”,而只锁定主版本(major),允许次版本(minor)和修订版本(patch)自由更新。

如果你写的是 ~1.0.0,那结果就不同了,它表示:

>=1.0.0

这反而和 1.0.* 是一样的范围。

关键区别总结

回到问题本身:

1.0.* → 允许 1.0.x(即 >=1.0.0 且 ~1.0 → 允许 1.x.x(即 >=1.0.0 且

所以最大的不同在于是否允许次版本(minor)升级。使用 1.0.* 更保守,只接受补丁更新;而 ~1.0 更宽松,接受所有 1.x 的功能更新(minor),只要不进 2.0。

基本上就这些,不复杂但容易忽略细节。

以上就是composer中的版本约束1.0.*和~1.0有什么区别的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/148334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 19:46:55
下一篇 2025年12月2日 20:07:16

相关推荐

发表回复

登录后才能评论
关注微信