新闻中心
如何在 Composer 中使用 --prefer-dist 和 --prefer-source 选项?
--prefer-dist 用于生产环境,下载预构建压缩包,安装快、占空间小;--prefer-source 用于开发调试,克隆完整 Git 仓库,支持修改和提交。

在 Composer 中,--prefer-dist 和 --prefer-source 是控制依赖包安装方式的两个关键选项,它们影响的是包的获取来源和本地存储形式,直接关系到安装速度、磁盘占用和后续开发便利性。
什么时候用 --prefer-dist?
这是 Composer 的默认行为,适用于大多数生产环境或普通使用场景。它会优先从包的发布版本(如 GitHub 的 Release ZIP 包、Packagist 提供的压缩包)下载预构建的归档文件。
- 安装更快:跳过 Git 克隆和历史检出,直接解压二进制包
- 占用空间更小:不含 Git 元数据和开发分支历史
- 适合部署:包内容稳定、可预期,不依赖远程仓库可用性
- 执行命令:
composer install --prefer-dist或composer update --prefer-dist
什么时候用 --prefer-source?
当你需要修改依赖源码、调试底层逻辑、或贡献补丁时,应使用该选项。它会通过 Git(或其他 VCS)克隆整个代码仓库到 vendor/ 目录下,并保留完整提交历史和分支信息。
- 支持本地修改和提交:可直接在
vendor/xxx中改代码、打补丁、切分支 - 便于调试和跟踪:能用
git blame、git log查看变更来源 - 适合开发阶段或维护 fork:例如你正在为某个包提 PR,需基于其 dev-main 分支开发
- 执行命令:
composer install --prefer-source(注意:首次安装后,后续composer update默认仍走 dist,除非显式指定)
如何设置为项目默认行为?
不必每次输入参数,可在项目根目录的 composer.json 中配置:
标贝悦读AI配音
在线文字转语音软件-专业的配音网站
78
查看详情
- 全局设为 prefer-dist:
"config": { "preferred-install": "dist" } - 全局设为 prefer-source:
"config": { "preferred-install": "source" } - 按包类型区分(推荐):
"preferred-install": { "*": "dist", "dev-*": "source" }—— 比如让所有 dev 包走 source,稳定版走 dist
一个小提醒:--prefer-source 不等于 --dev
这两个选项无关:--dev 控制是否安装 require-dev 中的包;而 --prefer-source 只决定已选包的获取方式。即使你不装 dev 包,也可以对正式依赖启用 source 安装。
基本上就这些。选哪个不复杂,但容易忽略背后的实际影响——要快就 dist,要改就 source。
以上就是如何在 Composer 中使用 --prefer-dist 和 --prefer-source 选项?的详细内容,更多请关注其它相关文章!
# 选项
# 渝中seo营销号
# 河南推广网站搭建收费
# 优化网站工具推荐代码
# 长春seo优化技巧
# 七台河百度关键词排名
# 为什么选择营销推广岗位
# 信用卡分期推广营销方案
# 压缩包
# 它会
# 不动
# 设为
# 什么时候
# 多个
# 跳过
# 有什么
# 如何在
# 如何解决
# red
# 解压
# ai
# github
# json
# git
# js
# composer
# 装修推广哪个网站更好
# 新乐营销推广招商
# 推广手游的网站
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
J*aScript类型检查_j*ascript代码规范
漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口
《燕云十六声》两周内达九百万玩家!位居畅销榜第五
深入理解J*aScript中的B样条曲线与节点向量生成
Lar*el DB::listen 事件中的查询执行时间单位解析
J*aScript实现单选按钮与关联输入框的联动禁用教程
163邮箱注册官网 免费申请163个人邮箱
Go语言JSON解析深度指南:动态访问与结构体映射实践
Golang指针如何与map组合使用_Golang map指针组合实践
CKEditor 5 自定义构建在React应用中渲染失败的调试与解决
C++如何实现异步操作_C++11使用std::future和std::async进行异步编程
小米汽车11月交付量突破40000台!雷军:将继续努力
AO3镜像入口大全 AO3网页版内容访问全集
qq游戏跨平台入口_qq游戏多设备同步登录
响应式容器内容自动缩放与宽高比维持教程
PHP中SSG-WSG API的AES加密实践:正确使用初始化向量
CSS布局中意外空白:解决padding-top导致的顶部间距问题
最新韩小圈网页版登录入口_官网在线观看官方链接
照顾宝贝2小游戏点击立即在线玩
UC浏览器官网入口2025最新 UC浏览器网页版正式地址
LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读
蛙漫2台版漫画地址 Manwa2正版网页版链接
小红书网页版入口链接分享 小红书官网直接进
NetBeans Ant项目:自动化将资源文件复制到dist目录的教程
在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全
限制HTML日期输入框的日期选择范围
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】
天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】
J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案
服务端验证_j*ascript输入检查
漫蛙漫画网页端入口 漫蛙2官方正版漫画站点
怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】
特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
天眼查企业查询官网入口 天眼查官方网页版查询
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
QQ邮箱网页版邮箱入口 QQ邮箱官方登录平台
解决移动端滚动问题的overflow属性应用指南
支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡
微信商城在哪里打开【步骤】
曝R星经典之作开发图 设计简陋但信息密集!
age动漫网站入口 age动漫官网直接访问入口
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
Python多版本共存与虚拟环境管理深度指南
Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法
深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现
QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问
Go语言中Map存储的结构体如何调用指针方法:深入解析与实践
抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明


2025-12-08
浏览次数:次
返回列表