--prefer-dist 优先下载压缩包,安装快、占用空间小,适合生产环境;2. --prefer-source 优先克隆源码仓库,含完整历史记录,便于修改调试,适合开发环境;3. 可通过配置指定默认安装方式,未指定时 Composer 自动选择。

在使用 Composer 安装或更新 PHP 依赖时,--prefer-dist 和 --prefer-source 是用来控制包的安装方式的参数。它们决定了 Composer 从哪里获取并如何安装依赖包。
--prefer-dist:优先从 dist(发行版本)安装
这个参数告诉 Composer 优先使用远程托管平台(如 GitHub、GitLab 或 Packagist)提供的压缩包(如 zip、tar.gz)来安装依赖。
特点:
- 安装速度快,因为直接下载预构建的归档文件
- 不包含版本控制系统的历史记录(比如 .git 文件夹)
- 适合生产环境,节省磁盘空间和时间
- 无法直接修改包的源码(因为不是克隆的仓库)
composer install --prefer-dist,Composer 会尝试从 dist URL 下载 zip 包来安装每个包。
--prefer-source:优先从 source(源代码仓库)安装
这个参数让 Composer 优先通过版本控制系统(通常是 git clone)克隆整个代码仓库来安装依赖。
特点:
- 会包含完整的版本历史(.git 目录等)
- 占用更多磁盘空间,安装较慢
- 方便调试或修改第三方包的源码
- 适合开发环境,特别是你想为某个依赖贡献代码或临时打补丁时
composer require some/package --prefer-source,Composer 会用 git clone 把这个包的完整仓库拉下来。
如果你没有指定这两个参数,Composer 会根据当前环境和配置自动选择一种方式。你也可以在 config 中设置默认行为,比如:
{
"config": {
"preferred-install": {
"some/package": "source",
"*": "dist"
}
}
}
这表示对特定包使用 source,其他都用 dist。
基本上就这些。简单说:--prefer-dist 快而轻,适合上线;--prefer-source 全而可改,适合开发。










