--prefer-dist优先下载预构建压缩包,适用于生产环境和快速安装;--prefer-source通过Git克隆源码,适合调试或修改依赖。多数情况推荐--prefer-dist,仅在需修改第三方库时使用--prefer-source。

在使用 Composer 安装或更新依赖时,--prefer-dist 和 --prefer-source 是两个控制包获取方式的选项。选择哪个取决于你的具体需求和使用场景。
什么是 --prefer-dist?
该选项告诉 Composer 优先从远程打包的压缩文件(如 zip、tar.gz)安装依赖。这些文件通常托管在 Packagist 等仓库上。
适用场景:
- 生产环境部署:更快、更轻量,不需要完整的版本控制历史。
- 希望快速安装依赖:dist 包是预构建的,下载后直接解压,效率高。
- 不打算修改第三方库代码。
什么是 --prefer-source?
该选项让 Composer 优先通过版本控制系统(通常是 Git)克隆源码来安装包。
适用场景:
- 开发或调试第三方库:你可以进入 vendor 目录修改代码,并提交更改或创建补丁。
- 需要切换分支或标签进行测试:比如测试某个 feature 分支是否修复了问题。
- 贡献开源项目:你可能需要向原作者提交 PR,用 source 方式便于同步更新。
如何选择?
基本原则是:
- 日常开发应用,不改依赖代码 → 用 --prefer-dist(也是默认行为之一)。
- 需要深入调试或修改 vendor 中的包 → 用 --prefer-source。
- CI/CD 部署或生产构建 → 强烈建议 --prefer-dist,节省时间和磁盘空间。
也可以在 composer.json 中为特定包强制指定获取方式:
"config": {
"preferred-install": {
"vendor/package": "source",
"another/package": "dist"
}
}
基本上就这些。根据你是“使用者”还是“修改者”,选择合适的方式即可。多数情况下,保持默认或使用 --prefer-dist 更合适。只有在深入参与依赖开发时,--prefer-source 才真正有用。










