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

在 Composer 中,版本约束 1.0.* 和 ~1.0 看起来相似,但它们的含义和行为有明显区别。理解这些差异有助于更精确地控制依赖包的更新范围。
这个写法表示允许安装 1.0 开头的所有版本,即匹配 1.0.0 到 1.0.999... 的任意修订版(patch)。
它等价于:
也就是说,只要主版本是 1,次版本是 0,任何 patch 版本都可以接受。例如:1.0.1、1.0.5、1.0.20 都符合要求,但 1.1.0 不行。
波浪线 ~ 的规则是:锁定最低指定版本的**最后一个数字位**,允许在其后的修订中升级。
对于 ~1.0,Composer 会理解为:
这意味着它允许所有 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.* 是一样的范围。
回到问题本身:
所以最大的不同在于是否允许次版本(minor)升级。使用 1.0.* 更保守,只接受补丁更新;而 ~1.0 更宽松,接受所有 1.x 的功能更新(minor),只要不进 2.0。
基本上就这些,不复杂但容易忽略细节。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号