–prefer-dist优先下载压缩包,安装快、占用小,适合生产环境;–prefer-source克隆完整源码,便于调试和修改,适合开发场景。

在使用 composer 安装 php 包时,–prefer-dist 和 –prefer-source 是两种不同的依赖包获取方式,它们决定了 Composer 从哪里以及如何下载和安装包。
–prefer-dist:优先下载压缩包(如 ZIP)
选择 –prefer-dist 时,Composer 会优先从包的发布版本中下载预打包的压缩文件(通常是 ZIP 或 TAR 格式)。这些文件一般托管在 gitHub、gitlab 或 Packagist 提供的 cdn 上。
特点:
- 下载的是稳定、构建好的发布版本,不包含开发分支或未提交的更改。
- 安装速度快,因为只传输压缩后的代码,体积小。
- 不会包含 Git 历史记录或 .git 目录,适合生产环境部署。
- 适用于大多数项目,尤其是不需要修改第三方库源码的情况。
–prefer-source:优先克隆源码仓库
使用 –prefer-source 时,Composer 会优先通过 Git(或其他 VCS)克隆整个源码仓库,而不是下载压缩包。
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
特点:
- 获取完整的版本控制历史,可以切换分支、查看提交记录。
- 方便调试和修改第三方库的源码,适合开发者贡献代码或临时修复 bug。
- 占用更多磁盘空间,且初始克隆较慢。
- 本地可以直接对库进行修改,并提交到自己的 fork 中。
实际应用场景对比
假设你正在安装 monolog/monolog:
- 使用
composer install --prefer-dist:Composer 下载一个干净的 ZIP 文件,解压后直接使用,适合上线项目。 - 使用
composer install --prefer-source:Composer 执行git clone把整个 monolog 仓库拉下来,你可以进入vendor/monolog/monolog目录做修改、切分支、提 PR。
如果你设置了 "preferred-install": {"*": "source"} 在 composer.json 中,所有包默认都会以 source 方式安装。
总结:怎么选?
简单来说:
- 要快、要轻量、用于生产 → 用 –prefer-dist(默认推荐)。
- 要改代码、要看历史、要开发调试 → 用 –prefer-source。
基本上就这些。根据你的使用场景选择合适的方式即可。
暂无评论


