--prefer-dist优先下载压缩包,安装快、占用小,适合生产环境;--prefer-source通过Git克隆源码,含完整历史,便于开发调试,适合本地修改。

在使用 Composer 安装或更新 PHP 依赖包时,--prefer-dist 和 --prefer-source 是两个控制包获取方式的选项。它们影响 Composer 从哪里以及如何下载和安装依赖库。
--prefer-dist:优先从压缩包安装
启用 --prefer-dist 时,Composer 会优先选择从预打包的压缩文件(如 zip、tar.gz)安装依赖包。这些文件通常托管在 CDN 或版本控制系统(如 GitHub)生成的发布包上。
特点:- 安装速度较快,因为不需要执行版本控制命令(如 git clone)
- 占用磁盘空间较小,不包含版本控制历史(如 .git 目录)
- 适合生产环境,只保留运行所需代码
- 无法直接修改源码或切换分支
例如:
这会让 Composer 尽可能使用 dist 包来安装所有依赖。
--prefer-source:优先从源码安装
启用 --prefer-source 时,Composer 会优先通过版本控制系统(通常是 Git)克隆完整的源代码仓库来安装包。
特点:- 包含完整的代码历史和分支信息,便于调试和开发
- 可以方便地切换分支、打补丁或贡献代码
- 占用更多磁盘空间,且安装稍慢
- 适合开发环境或需要修改第三方库的场景
例如:
composer install --prefer-source这会让 Composer 尽量以源码形式安装每个依赖,方便你进入 vendor 目录查看或修改代码。
你也可以在 composer.json 中为特定包设置安装方式:
"config": {"preferred-install": {
"monolog/monolog": "dist",
"laravel/framework": "source"
}
}
总结来说,--prefer-dist 更适合部署和性能要求高的场景,--prefer-source 更适合本地开发和调试。根据你的使用场景选择合适的方式即可。
基本上就这些,按需使用就行。










