minimum-stability 控制依赖包最低稳定性,按从低到高为 dev、alpha、beta、RC、stable,决定 composer install 时可选的版本范围。

Composer 的 minimum-stability 设置用于控制项目中允许安装的依赖包的最低稳定性级别。当你在 composer.json 中声明依赖时,这些包可能有不同的发布状态(比如开发版、测试版等),这个配置决定了 Composer 可以选择哪些版本。
稳定性级别的顺序
Composer 定义了以下几种稳定性级别,按从低到高排列:
-
dev — 开发分支(如
dev-main或dev-develop</)</li> <li><font color="#FF6600">alpha</font> — 阿尔法版,初步功能实现,可能存在严重问题</li> <li><font color="#FFCC00">beta</font> — 贝塔版,功能基本完成,仍在测试</li> <li><font color="#009900">RC</font>(Release Candidate)— 候选发布版,接近正式版</li> <li><font color="#0000FF">stable</font>(默认)— 稳定正式版</li> </ul> <p>minimum-stability 的值设为其中一个级别后,Composer 就只会安装等于或高于该稳定性的包,除非个别包通过 <code>require
显式指定了更宽松的条件。常见设置示例
例如:
"minimum-stability": "stable"
这是默认行为,只安装稳定版依赖。
"minimum-stability": "beta"
允许安装 beta、RC 和 stable 版本,但不会安装 alpha 或 dev 分支。
"minimum-stability": "dev"
允许所有版本,包括开发分支。
配合 stability flags 使用
有时候你只想对某个特定包使用不稳定的版本,而不影响整体项目。这时可以不在
minimum-stability上放宽限制,而是在require中用版本约束指定稳定性。比如:
{ "require": { "monolog/monolog": "dev-main as 2.0" }, "minimum-stability": "stable" }即使全局是 stable,这个包仍会安装 dev 分支,因为 Composer 允许在 require 中显式覆盖。
也可以使用 @ 标记指定稳定性:
"require": { "some/package": "^1.0@beta" }总结
minimum-stability 是一个全局开关,影响所有未明确指定稳定性的依赖。建议大多数项目保持为 stable,确保依赖可靠。若需引入不稳定包,优先通过 require 中的版本约束单独控制,避免降低整体项目的稳定性风险。
基本上就这些,不复杂但容易忽略细节。










