minimum-stability定义可安装的最低稳定性,如beta则允许beta及以上版本;prefer-stable为true时优先选择更稳定的可用版本。

在 composer.json 中,"minimum-stability" 和 "prefer-stable" 都用于控制依赖包的版本选择策略,但它们的作用方式不同。
minimum-stability:全局最低稳定性要求
这个字段定义了项目允许安装的依赖包的最低稳定性。它的值可以是 dev、alpha、beta、RC 或 stable(默认为 stable)。
例如:
- "minimum-stability": "beta" 表示允许安装 beta 及更稳定(如 RC、stable)的包,但不会安装 alpha 或 dev 版本(除非特别指定)。
- 它会影响 所有未明确指定稳定性 的依赖项。
prefer-stable:优先选择稳定版本
这个字段是一个布尔值(true/false),它只在 minimum-stability 允许非稳定版本时起作用。
当设置为 true 时,Composer 会尽可能选择更稳定的版本,即使有更新的开发版可用。
- 比如你设置了 "minimum-stability": "dev",意味着可以安装任何版本,包括 dev 分支。
- 但如果同时设置 "prefer-stable": true,Composer 会在有 stable 版本可用时优先选择 stable,而不是最新的 dev-master。
实际例子
{
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"monolog/monolog": "^2.0"
}
}
- 虽然允许安装 dev 版本,但由于
prefer-stable为 true,Composer 会优先安装 monolog 的最新稳定版,而不是某个开发分支。
基本上就这些。简单说:minimum-stability 决定“能装什么”,而 prefer-stable 决定“想装哪个”。









