不能直接看到。composer show 默认只显示包名、版本、描述和依赖,不展示 support.changelog 字段;需通过 composer show vendor/package -s 获取源码地址,再手动拼接 github/gitlab 的 changelog.md 或访问 releases 页面。

composer show 能看到 changelog 链接吗?
不能直接看到。composer show 默认只显示包名、版本、描述和依赖,不包含 changelog 字段或链接。有些包在 composer.json 里声明了 support.changelog,但 Composer 不会自动解析并展示它——你得自己查。
怎么快速定位一个包的官方 changelog 页面?
绝大多数主流 PHP 包把变更日志放在 GitHub/GitLab 的固定路径,优先按这个顺序手动拼:
- 先看包的源码仓库地址:
composer show vendor/package -s(-s 显示 source),拿到source.url - 如果是 GitHub,直接拼
{repo_url}/blob/main/CHANGELOG.md或{repo_url}/blob/master/CHANGELOG.md - 常见变体还有:
/blob/main/changelog.md、/releases(GitHub Releases 页面)、/blob/main/CHANGELOG(无扩展名) - 少数包用自建文档站,比如 Laravel 在
laravel.com/docs/{version}/changelog,这时得查官网文档说明
composer outdated --format=json 输出里有 changelog 吗?
没有。composer outdated --format=json 只返回 name、version、latest、description 这几项。想批量检查多个包的更新内容,只能靠脚本解析 composer show 拿到源码地址,再请求对应仓库的 CHANGELOG 文件——但注意 GitHub API 有速率限制,别写死循环请求。
为什么有些包根本找不到 CHANGELOG.md?
不是所有维护者都坚持写。容易踩的坑包括:
- 包作者把变更记录全塞进
git tag的注释里,没单独建文件——这时用git log --oneline v1.2.0..v1.3.0查差异更靠谱 - CHANGELOG 放在非默认分支(比如
stable分支),而你默认查的是main - 包用的是自动生成 changelog 工具(如
github-changelog-generator),但没发布到公开 repo,只在 CI 里生成 - 私有包或内部组件压根没维护 changelog,只能翻
git log或问同事
最稳的方式永远是:先 composer show 看源码地址,再打开浏览器,手动点开 releases 标签页——人类肉眼识别比自动化更可靠,尤其对小众包。










