Composer如何排除特定的文件或目录


使用.gitattributes文件中的export-ignore指令可有效排除Composer包发布时的无关文件,如测试、示例等目录,确保dist包简洁;也可在composer.json中配置archive.exclude实现类似效果,但优先级低于.gitattributes;若需项目安装时精简依赖,应联系维护者优化或寻找轻量替代方案。

composer如何排除特定的文件或目录

Composer 本身在安装和更新依赖时,主要处理的是 vendor 目录下的包文件,它不会自动把你的项目源码打包发布。但如果你是创建一个 Composer 包(比如类库),并希望在分发时排除某些文件或目录(如测试文件、文档、示例代码等),可以通过配置 composer.json 中的 archive 配置或使用 .gitattributes 文件来实现。

1. 使用 .gitattributes 排除文件(推荐用于 Git 仓库)

如果你的包托管在 Git 上,并通过 Composer 的 dist 方式分发(即打 tag 后发布的压缩包),Composer 会基于 Git 的归档机制生成压缩包。这时可以使用 .gitattributes 文件来指定哪些文件在打包时被排除。

在项目根目录创建或编辑 .gitattributes 文件:

/tests export-ignore
/examples export-ignore
/.gitattributes export-ignore
/README.md export-ignore

上面的配置表示:在执行 git archive(也就是 Composer 下载 dist 包时)会忽略这些文件或目录。

2. 在 composer.json 中定义 archive 配置

你也可以在 composer.json 中明确指定哪些文件包含或排除在归档包之外(适用于更精细控制):

X-Node企业快速建站1.0.6.0801 X-Node企业快速建站1.0.6.0801

特色介绍: 1、ASP+XML+XSLT开发,代码、界面、样式全分离,可快速开发 2、支持语言包,支持多模板,ASP文件中无任何HTML or 中文 3、无限级分类,无限级菜单,自由排序 4、自定义版头(用于不规则页面) 5、自动查找无用的上传文件与空目录,并有回收站,可删除、还原、永久删除 6、增强的Cache管理,可单独管理单个Cache 7、以内存和XML做为Cache,兼顾性能与消耗 8、

X-Node企业快速建站1.0.6.0801 0 查看详情 X-Node企业快速建站1.0.6.0801 { "name": "your-vendor/your-package", "archive": { "exclude": [ "/tests/", "/examples/", "/*.md", "/config-dev.php", "/var/" ] } }

注意:该功能需要确保你使用的打包工具支持此配置(如 composer archive 命令或 CI 构建流程中正确处理)。不是所有环境都默认启用此行为,尤其是当包从 Git 自动构建时,仍以 .gitattributes 为准。

3. 不想让某些文件进入 vendor(项目依赖中)

如果你是项目开发者,只是不想某些依赖中的文件被加载或影响项目,Composer 本身不提供“安装依赖时排除其子文件”的功能。但你可以:

  • 联系包维护者优化其 .gitattributes
  • 使用脚本在 post-autoload-dumppost-install-cmd 中手动删除不需要的文件(不推荐,破坏完整性)
  • 考虑是否真的需要该依赖,或寻找更轻量替代方案

基本上就这些方法。最常用且可靠的是 .gitattributes + export-ignore,适合大多数开源 PHP 包的发布场景。只要打好标签,Composer 自动获取的 dist 包就会干净。

以上就是Composer如何排除特定的文件或目录的详细内容,更多请关注php中文网其它相关文章!


# 命令行  # 网站进行内部的调整优化  # 啄木鸟的营销推广  # 常德网站建设开发收费  # 带seo的鞋子品牌  # 跟着剑侠学seo  # 莲塘企业免费网站建设  # 洪梅服装网站推广怎么做  # 整合式营销推广  # 本地外贸网站建设便宜  # 全年营销推广方案 地产  # 制程  # 根本原因  # php  # 如何解决  # 尼克  # 压缩包  # 如何在  # 你是  # 的是  # 建站  # 工具  # composer  # json  # git  # js 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 《狐友》联系客服方法  《单词速记宝》设置学习计划方法  如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】  解决PHP MySQL数据库更新无响应:SQL查询语法错误解析  苹果11如何更换iCloud账号_苹果11账号切换的具体步骤  Win10关闭UAC用户账户控制的方法 Win10降低安全提示等级【技巧】  魔法祈幻界兑换码礼包大全  火狐浏览器无法自动更新怎么办 手动更新火狐浏览器到最新版本【解决】  J*aScript装饰器_元编程实战  漫蛙漫画官方网站使用_漫蛙manwa网页版在线入口教程  多多买菜门店端app订单查看方法  狙击外星人小游戏在线链接_狙击外星人小游戏网页链接  天天漫画2025最新入口 天天漫画永久有效登录入口  《洛克王国:世界》国家队搭配攻略  Python高效统计字典嵌套列表值在目标列表中的出现次数  J*a中的值传递到底指什么_值传递模型在参数传递中的真正含义说明  无人机考证官网 中国民航无人机考证官网登录入口  C++如何实现矩阵乘法_C++二维数组矩阵运算代码示例  139邮箱登录入口官网 139邮箱登录入口官网网址  掌握产品代码正则表达式:避免常见陷阱与精确匹配  firefox火狐浏览器最新官网主页_ firefox火狐浏览器平台入口直达官方链接  抖音号升级成企业资质怎么弄?有什么好处?  FullCalendar自定义按钮样式定制指南  智慧职教mooc平台登录网址 智慧职教mooc官网直达  在Django中动态检查模型关联:一种灵活的解决方案  poki官网最新入口 poki小游戏大全入口  Golang中的rune与byte类型区别是什么_Golang字符与字节处理详解  泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口  《随手记》备份数据方法  如何在解析前预检查XML文件的完整性? 比如检查文件大小或特定结束标签  Yandex世界探索 最新官方免登录入口全知道  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法  申通快件单号查询平台 申通包裹物流动态跟踪  多闪电脑版下载_多闪PC端模拟器使用  附近酒吧怎么找?  易车网官网直达入口 易车网在线登录入口  解决Flex容器横向滚动内容截断与偏移问题  小红书如何引流到私信?引流到私信有用吗?  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  PHP多语言网站的实现:会话管理与翻译函数优化教程  邦丰播放器频道搜索设置  如何在CSS中清除浮动解决背景颜色不包裹内容问题_clear after技巧  创客贴登录页面入口 创客贴网页版最新网址链接  喜茶GO更换登录账号方法  Leaflet地图弹出窗口图片动态显示:避免缺失图标的专业指南  猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程  修复UI元素交互障碍:从“开始”按钮到信息框的平滑过渡实现  composer 提示 "requires ext-soap" 缺少 SOAP 扩展怎么办?  Vue 3中独立响应式实例的创建与应用  C++中的explicit关键字有什么作用_C++类型转换控制与explicit使用 

 2025-12-18

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.