composer 无内置命令查包更新日志;需先用 composer show vendor/package 获取源码地址,再手动访问 github/gitlab 查 commits 或 releases。

composer show -l 查不到包的更新日志?
直接运行 composer show -l 会报错,因为 composer show 命令本身不支持 -l 参数——这是常见误解。Composer 官方没有内置命令能直接拉取所有依赖包的「最近更新日志」(比如 GitHub 的 commit history 或 release notes)。它只提供包的元信息(版本、描述、依赖关系),不对接 VCS 日志。
用 composer show 获取包的源码地址后手动查
想看到真实更新记录,得先拿到包的仓库地址,再跳转到对应平台(GitHub/GitLab)翻看 commits 或 releases。操作分两步:
- 运行
composer show vendor/package-name(例如composer show monolog/monolog),输出里找source或homepage字段,通常含 Git 仓库 URL - 复制该 URL(如
https://github.com/Seldaek/monolog),浏览器打开 → 点Commits或Releases标签页 - 注意:有些包 homepage 是官网而非仓库,此时需在
source行确认;若两者都缺失,可去 Packagist 页面搜该包,页面右上角有 Source 链接
用 composer outdated 检查哪些包有新版本但不显示日志
composer outdated 能列出可升级的包及最新稳定版号,但它只告诉你「有更新」,不提供「改了什么」。配合 --direct 或 --minor-only 可缩小范围:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer outdated --direct:只显示你composer.json中直接声明的包(排除递归依赖) -
composer outdated --format=json:输出 JSON,方便脚本解析后批量查仓库 - 它不会显示 commit 时间或变更摘要,别指望靠它替代 release notes
自动化查日志的折中方案:结合 GitHub API + composer show
如果真需要批量获取更新日志摘要,得自己写小脚本。核心逻辑是:从 composer show 提取 source URL → 正则匹配 GitHub 仓库路径(如 github.com/user/repo)→ 调 GitHub API 获取最近 3 条 release:
curl -s "https://api.github.com/repos/user/repo/releases?per_page=3" | jq -r '.[] | "\(.tag_name) \(.published_at) \(.name)"'
注意:jq 需提前安装;API 有速率限制(未登录每小时 60 次),大量包建议加 sleep 或用 token;私有包或非 GitHub 仓库(如 GitLab)需换对应 API。
真正麻烦的不是命令本身,而是每个包的发布习惯不同:有的勤发 release 并写 changelog,有的只推 tag 不写说明,还有的把日志放在 CHANGELOG.md 里——这些都得人工确认,没法靠一条 Composer 命令兜底。










