发布到Composer的本质是让Packagist抓取Git仓库元数据并提供composer require入口;需公开仓库、含有效composer.json(含name字段)、打tag推送,再提交URL至packagist.org。

发布到 Composer 的本质,是让 Packagist 能抓取你的 Git 仓库元数据,并对外提供可 composer require 的安装入口。不是上传代码包,也不是手动提交 ZIP。
确保 Git 仓库已就绪且可公开访问
Packagist 只认 Git(或 SVN/Hg)仓库 URL,不接受本地路径或 ZIP 包。GitHub、GitLab、Gitee 均可,但必须是公开仓库(私有需付费 Packagist Pro 或自建私仓)。
- 仓库根目录下必须存在有效的
composer.json,且含"name"字段(格式为vendor/package-name,全小写、用短横线分隔) - 所有标签(
v1.0.0、1.0.0)和分支(main、dev-master)都会被 Packagist 解析为版本,所以打 tag 前务必git push --tags - 若用 GitHub,确认仓库 Settings → Pages 未意外启用(无关但常被误配,干扰 webhook)
在 Packagist 上提交仓库地址
登录 packagist.org(推荐 GitHub 登录),点击右上角 Submit,粘贴你的 Git 仓库 HTTPS 地址(如 https://github.com/yourname/your-package)。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 首次提交后,Packagist 会立即抓取一次元数据;后续更新靠 GitHub Webhook 自动触发(提交时勾选 “Include all branches”)
- 如果没自动更新,手动点包页右上角
Update按钮(非Submit) - 提交失败常见原因:
composer.json缺name、Git 仓库 404、URL 多了.git后缀、仓库设为私有
验证能否被正常 require
别只信 Packagist 页面显示“success”,要真装一次:
- 新建空项目:
composer create-project laravel/laravel test-app(或其他框架/纯 PHP 项目) - 执行:
composer require yourname/your-package—— 必须成功,且类能自动加载(new YourName\YourPackage\SomeClass()不报错) - 若 Laravel 包没自动注册服务提供者,检查
composer.json是否漏了"extra": { "laravel": { "dont-discover": [] } } - 若提示
Could not find package yourname/your-package,先运行composer clear-cache,再确认 Packagist 上包状态是否为 “active”(非 “abandoned”)
真正容易被忽略的点:Packagist 不校验代码逻辑,只认 Git + composer.json。你 push 了一个语法错误的 src/ 文件,composer require 仍会成功——但用户 autoload 时直接 fatal error。发布前务必在干净环境里 require 并跑通最小可用示例。

















