新闻中心

composer "prefer-dist" 和 "prefer-source" 选项有什么作用?

2025-12-02
浏览次数:
返回列表
prefer-dist优先下载压缩包,安装快、占空间小,适合生产环境;prefer-source通过git克隆源码,含完整历史,便于开发调试,适合本地开发。

composer \

在使用 Composer 安装或更新依赖时,"prefer-dist""prefer-source" 是两种获取包的方式,它们决定了 Composer 从哪里以及如何下载和安装依赖包。

prefer-dist:优先从压缩包安装

当设置为 prefer-dist 时,Composer 会优先从 VCS(如 GitHub)生成的压缩包(如 zip、tar.gz)来安装包。这些压缩包通常由版本控制系统自动生成,对应某个 tag 或 release。

特点:

魔术橡皮擦 魔术橡皮擦

智能擦除、填补背景内容

魔术橡皮擦 80 查看详情 魔术橡皮擦
  • 安装速度快,因为只下载打包好的代码,不包含完整的版本历史。
  • 占用磁盘空间小,适合生产环境。
  • 无法直接修改源码,也不包含 .git 目录,不能进行本地提交。
  • 适用于稳定版本(tag)的安装。

prefer-source:优先从源码仓库克隆

当设置为 prefer-source 时,Composer 会优先通过 git clone(或其他 VCS 方式)将整个代码仓库完整拉取到本地。

特点:

  • 包含完整的版本历史,有 .git 目录,可以进行开发、切换分支、提交更改。
  • 占用空间大,但便于调试和贡献代码。
  • 适合开发阶段,尤其是需要修改第三方包或测试 dev 分支时。
  • 如果你运行 composer install 并希望所有包都以源码形式存在,方便 Xdebug 断点或阅读源码,这很有用。

如何设置?

可以在 composer.json 中全局配置:

{
    "config": {
        "preferred-install": {
            "my/package": "source",
            "*": "dist"
        }
    }
}

或者统一设置:

{
    "config": {
        "preferred-install": "source"
    }
}

也可以在命令行临时指定:

composer install --prefer-source
composer install --prefer-dist

实际应用场景

  • 生产环境部署通常使用 --prefer-dist,快速、轻量。
  • 本地开发调试第三方包时使用 --prefer-source,可进入 vendor 目录修改代码、创建补丁。
  • 某些私有包或 dev 分支只能通过 source 安装。

基本上就这些。根据你的使用场景选择合适的方式,能更高效地管理 PHP 依赖。

以上就是composer "prefer-dist" 和 "prefer-source" 选项有什么作用?的详细内容,更多请关注php中文网其它相关文章!


# 设置为  # 苏州seo排名需要做吗  # 淮安网站建设文案制作  # 运城网站建设哪个正规  # 国外网站建设兼职推荐  # 海口短视频seo费用  # 益阳全网网站建设方法  # 茂名推广网站推荐  # 正规全网营销推广地址  # seo个人项目  # 上蔡推广营销费用多少  # 尤其是  # 也不  # 如果你  # php  # 第三方  # 有什么  # 回调  # 如何使用  # 如何解决  # 压缩包  # red  # github  # composer  # json  # git  # js 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: qq邮箱发邮件给国外发不出去_QQ邮箱国际邮件发送失败原因与解决  2026春节假期票务安排_2026春节放假购票指南  Yandex官网搜索引擎免登录_俄罗斯Yandex一键直达入口  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  必由学官网首页入口 必由学教师网页版登录指南  微博网页版首页入口 微博电脑端官网登录链接  C++如何生成随机数_C++ random库使用方法与范围设置  React Router v6 教程:构建认证保护的私有路由与重定向策略  如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构  抓大鹅解压小游戏 抓大鹅摸鱼解压入口  AO3访问入口汇总 AO3网页版同人作品一键直达  海量存储:机器视觉智能化的核心基石  Golang如何使用new_Go new分配内存机制讲解  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  天猫2025双十一0点秒杀攻略 天猫爆款抢购时间  win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  夸克AO3官网入口_AO3镜像网站2025推荐  顺丰国际快递查询 国际件官方查询入口  抖音网页版平台入口 抖音网页版官网在线访问教程  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?  Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持  蛙漫移动版在线看 蛙漫手机浏览器直达入口  高德地图沿途添加点失败如何解决 高德多点规划方法  React列表渲染与独立状态管理:避免全局状态影响局部更新  Python模块化编程:有效管理依赖与避免循环引用  PostgreSQL海量数据高效导入策略:Python与Django实践指南  AO3官网镜像链接 Archive of Our Own同人文在线浏览  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  html5 app怎么运行环境_配html5 app运行环境【教程】  将JSON对象数组转置为键值对列表的实用指南  qq音乐在线播放入口_qq音乐电脑版登录链接  4399网页游戏电脑版全新入口 4399电脑端在线玩指南  Animex动漫社网入口地址 Animex动漫社网正版在线入口  Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换  淘宝支付提示失败如何解决 淘宝支付流程优化方法  斑马英语APP如何开启夜间护眼阅读_斑马英语APP夜间模式与低蓝光设置教程  Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】  React/Next.js中实现列表项的动态选择与移动  处理Kafka消费者会话超时:深入理解消息处理语义与幂等性  jQuery Mask 插件中实现电话号码固定前导零的教程  优化HTML表单样式:解决输入框焦点跳动与元素间距问题  多闪网页版在线观看免费入口_多闪官网访问入口  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  汽车之家官方网站官网入口_汽车之家网页版直接进入  谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】 

搜索