优先选择稳定版本安装PHP依赖,composer require vendor/package --prefer-stable 在满足依赖时倾向使用如v1.0.0类稳定版,避免dev或beta等开发分支,适用于minimum-stability为dev但希望关键包稳定的场景。

composer require --prefer-stable 是 Composer(PHP 的依赖管理工具)中的一个命令选项,用于在安装或更新包时优先选择稳定的版本。
基本含义
当你运行 composer require vendor/package --prefer-stable 时,Composer 会尝试为你添加指定的包,并在解决依赖关系时:- 优先选择已标记为稳定(stable)的版本,比如 v1.0.0、v2.1.0 等
- 即使配置中允许使用开发版本(如 dev-main、dev-develop 或 alpha/beta/rc 版本),也会尽量避免,除非没有稳定的替代方案
为什么需要这个选项?
有些项目在composer.json 中设置了 "minimum-stability": "dev" 或类似设置,这会让 Composer 允许安装不稳定的版本。但你可能只希望某些包使用稳定版,而不是全部。这时:
-
--prefer-stable可以让你“在宽松环境下追求稳定性” - 它不会改变全局最小稳定性要求,但会影响版本解析器的偏好
实际例子
假设你的项目允许 dev 分支(因为 minimum-stability 是 dev),但你想确保 Laravel 使用稳定版:composer require laravel/framework --prefer-stableComposer 会优先选择像
9.0.0 这样的稳定版本,而不是 9.x-dev 这样的开发分支。
和相关选项的区别
-
--prefer-stable:倾向于稳定版,但不是强制(只是“偏好”) -
--prefer-dist:优先从 dist(压缩包)安装,而非源码克隆 -
--prefer-source:相反,优先用源码方式安装 - 想完全禁止不稳定版本?应调整
minimum-stability或使用@stable约束










