新闻中心

如何在 Composer 中使用 --prefer-dist 和 --prefer-source 选项?

2025-12-08
浏览次数:
返回列表
--prefer-dist 用于生产环境,下载预构建压缩包,安装快、占空间小;--prefer-source 用于开发调试,克隆完整 Git 仓库,支持修改和提交。

如何在 composer 中使用 --prefer-dist 和 --prefer-source 选项?

在 Composer 中,--prefer-dist--prefer-source 是控制依赖包安装方式的两个关键选项,它们影响的是包的获取来源和本地存储形式,直接关系到安装速度、磁盘占用和后续开发便利性。

什么时候用 --prefer-dist?

这是 Composer 的默认行为,适用于大多数生产环境或普通使用场景。它会优先从包的发布版本(如 GitHub 的 Release ZIP 包、Packagist 提供的压缩包)下载预构建的归档文件。

  • 安装更快:跳过 Git 克隆和历史检出,直接解压二进制包
  • 占用空间更小:不含 Git 元数据和开发分支历史
  • 适合部署:包内容稳定、可预期,不依赖远程仓库可用性
  • 执行命令:composer install --prefer-distcomposer update --prefer-dist

什么时候用 --prefer-source?

当你需要修改依赖源码、调试底层逻辑、或贡献补丁时,应使用该选项。它会通过 Git(或其他 VCS)克隆整个代码仓库到 vendor/ 目录下,并保留完整提交历史和分支信息。

  • 支持本地修改和提交:可直接在 vendor/xxx 中改代码、打补丁、切分支
  • 便于调试和跟踪:能用 git blamegit log 查看变更来源
  • 适合开发阶段或维护 fork:例如你正在为某个包提 PR,需基于其 dev-main 分支开发
  • 执行命令:composer install --prefer-source(注意:首次安装后,后续 composer update 默认仍走 dist,除非显式指定)

如何设置为项目默认行为?

不必每次输入参数,可在项目根目录的 composer.json 中配置:

标贝悦读AI配音 标贝悦读AI配音

在线文字转语音软件-专业的配音网站

标贝悦读AI配音 78 查看详情 标贝悦读AI配音
  • 全局设为 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存储的结构体如何调用指针方法:深入解析与实践  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明 

搜索