Composer怎么发布包到码云Gitee_国内源发布Composer包教程【干货】

1次阅读

composer 无法直接发布包到 gitee,因其不提供 packagist 类服务;需将代码推至 gitee 并提交仓库地址至 packagist.org 或私有源(如 satis)完成索引与分发。

Composer怎么发布包到码云Gitee_国内源发布Composer包教程【干货】

不能直接用 Composer 发布包到 Gitee —— 它压根不提供 packagist.org 那类服务,你得自己搭或借第三方源。

为什么 composer publish 会报错

Composer 本身没有发布命令,composer publish 根本不存在。常见错误是误以为它像 npm publish 一样内置上传能力,结果运行后提示 Command "publish" is not defined

  • Composer 只负责安装和依赖解析,包的托管、索引、分发全靠外部仓库(如 packagist.org)
  • Gitee 是代码托管平台,不是 Composer 包注册中心,它不解析 composer.json、不生成包元数据、不提供 packages.json 接口
  • 国内访问 packagist.org 慢,有人就想“把包传到 Gitee 就行”,但光推代码没用,composer require 仍会去官方源查不到你的包

想让别人 composer require 你的 Gitee 包,必须做两件事

核心逻辑:Gitee 存代码 + 第三方源做索引。缺一不可。

  • 代码推到 Gitee 公开仓库,确保根目录有合法的 composer.json(含 nameversionautoload 等字段)
  • 把该仓库地址提交给支持 Gitee 的 Composer 镜像源,比如 phpcomposer.com(已停)或自建 packagist 实例;目前较稳的是 packagist.org 本身支持 Gitee —— 在提交时填 Gitee 仓库 URL 即可
  • 注意:name 字段必须符合 vendor/name 格式,且 vendor 名需与你在 packagist.org 注册的用户名一致,否则验证失败

国内加速场景下,怎么让团队只走 Gitee + 私有源

如果你控制整个团队的 Composer 配置,可以绕过 packagist.org,用私有源聚合 Gitee 项目。

  • toran-proxysatis 搭建私有源,配置其扫描你的 Gitee 组织下所有带 composer.json 的仓库
  • composer.json 中设 repositories 指向这个私有源地址,而非 packagist.org
  • 每次 Gitee 上打 tag 后,手动或用 webhook 触发私有源更新索引,否则新版本不会被识别
  • 别漏掉 httpS 证书问题:私有源若用自签证书,需在 composer config 中设 secure-http false,否则 composer update 直接拒绝连接

真正卡住人的从来不是推代码,而是没搞清「谁负责索引」和「谁负责分发」——Gitee 只干第一件事的前半截(存 Git),剩下全得你补。

text=ZqhQzanResources