–prefer-dist 通常更快,因为它下载预构建的压缩包而非完整 Git 仓库,省去 clone、检出、清理等步骤,依赖 CDN 加速且不依赖本地 Git;私有包若无 dist 配置则自动回退 source。
默认情况下 Composer 就用 --prefer-dist,你不需要显式加它——除非你之前全局设置了 --prefer-source 或当前项目有特殊配置。
为什么 --prefer-dist 通常更快?
它下载的是预构建的压缩包(如 vendor/foo/bar/1.2.3.zip),而非完整 Git 仓库。省去 git clone、检出分支、清理 .git 目录等步骤,尤其对大依赖(如 symfony/symfony)效果明显。
- 压缩包由 Packagist 预生成并托管在 CDN 上,直连快、缓存友好
- 不依赖本地 Git 安装或网络连通性(
--prefer-source会尝试git clone,失败就卡住) - 但注意:某些私有包若未配置
dist信息(比如没设dist.type和dist.url),Composer 会自动 fallback 到 source
如何确认当前是否真走 dist 流程?
加 -v(verbose)运行安装命令,观察日志里是否出现 Downloading 这类行;如果看到 xxx.zip from https://api.github.com/...Cloning ,说明走了 source。https://github.com/... to /path/to/vendor/...