–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 中为特定包强制指定获取方式:
基本上就这些。根据你是“使用者”还是“修改者”,选择合适的方式即可。多数情况下,保持默认或使用 –prefer-dist 更合适。只有在深入参与依赖开发时,–prefer-source 才真正有用。