使用 --prefer-dist 可显著提升 Composer 依赖安装速度,1. 它优先下载预构建的压缩包(dist)而非克隆源码(source);2. 适用于生产部署、CI/CD 等无需调试源码的场景;3. 可通过命令行添加或配置 preferred-install dist 设为默认;4. 注意开发中包可能无 dist 文件,且低带宽下大文件下载可能不稳定。

在使用 Composer 安装或更新 PHP 依赖时,下载速度直接影响开发效率。通过添加 --prefer-dist 选项,可以显著提升依赖包的获取速度,尤其是在网络环境良好或部署生产环境时。
什么是 --prefer-dist?
Composer 默认根据当前上下文决定从源码(source)还是压缩包(dist)安装依赖。源码方式会克隆完整的 Git 仓库,适合开发调试;而 dist 方式直接下载已打包的压缩文件(如 tar.gz 或 zip),体积更小、速度更快。
--prefer-dist 告诉 Composer 优先选择预构建的压缩包进行安装,避免执行耗时的 Git 克隆操作。
何时使用 --prefer-dist 更有效?
该选项在以下场景中效果最明显:
- 生产环境部署:不需要修改依赖源码,只需快速部署稳定版本。
- CI/CD 流水线:构建过程追求速度和可重复性,无需版本控制历史。
- 网络稳定且 CDN 加速可用:dist 文件通常托管在 CDN 上,下载更快。
如何正确使用 --prefer-dist
可以在常用命令后加上该选项:
- composer install --prefer-dist:安装 composer.lock 中锁定的依赖版本。
- composer update --prefer-dist:更新依赖并优先使用压缩包。
- composer require vendor/package --prefer-dist:添加新包时也优先走 dist 通道。
还可以将该行为设为默认,在全局或项目配置中添加:
composer config --global preferred-install dist
这样即使不加 --prefer-dist,Composer 也会优先使用 dist 安装。
注意事项与潜在问题
虽然 --prefer-dist 能加速下载,但也有一些限制:
- 某些开发中的包可能未生成 dist 包,强制使用 dist 可能失败。
- 如果本地需要调试依赖源码或切换分支,应使用 --prefer-source。
- 在低带宽或不稳定网络下,大体积的 dist 文件反而不如源码逐步拉取稳定。
基本上就这些。合理使用 --prefer-dist 能明显加快依赖安装速度,尤其适合部署和持续集成场景。关键是理解 dist 和 source 的区别,并根据实际需求选择合适的方式。不复杂但容易忽略。










