composer show 不能直接生成 Markdown 或 HTML 依赖报表,它仅输出纯文本;需借助组合命令(如 grep、jq)、插件(如 composer-unused)或专用工具(如 composer-license-checker)实现结构化导出。

composer show 能否直接生成 Markdown 或 HTML 依赖报表
不能。composer show 默认只输出纯文本列表,不支持 --format=html 或 --output=md 这类参数。它本质是调试命令,不是文档生成工具。想导出结构化报表,得靠组合命令或第三方插件。
用 composer show + grep + awk 快速提取关键依赖信息
适合临时查版本、筛选生产环境依赖,不依赖额外工具:
-
composer show --direct只列出require中声明的包(不含递归依赖) -
composer show --tree查看依赖树,但输出冗长,建议配合grep过滤:例如composer show --tree | grep -E "^(monolog|guzzle)" - 导出为简单表格格式:
composer show --format=json | jq -r '.[] | "\(.name)\t\(.version)\t\(.description)"' | column -t -s $'\t'(需安装jq和支持-s $'\t'的column)
用 composer-unused 检查未使用的 require 包(避免报表里混入“僵尸依赖”)
很多项目 composer.json 里残留着早已不用的包,导出报表前清理它们,能让结果更真实:
- 安装:
composer global require composer-unused/composer-unused - 运行:
composer-unused --no-interaction --no-progress - 注意:它默认只扫描
src/和tests/,若代码在app/或其他目录,需加--path=app - 输出中标记为
unused的包,建议先人工确认再从composer.json中移除
生成带版本号和许可证的 HTML 报表(推荐使用 composer-license-checker)
真正接近“一键导出”的方案是 composer-license-checker,它能扫出所有依赖的许可证、版本、作者,并导出为 HTML 表格:
- 安装:
composer require --dev akeneo/license-checker - 生成 HTML:
vendor/bin/license-checker export --format=html --output=licenses.html - 生成 CSV(方便 Excel 处理):
vendor/bin/license-checker export --format=csv --output=licenses.csv - 注意:某些私有包若没定义
license字段,会显示unknown;可手动在composer.json中补全,或用--ignore-unknown跳过
依赖文档的核心价值不在“全”,而在“准”——导出前删掉不用的包、确认 license 字段是否完整,比追求自动生成的花哨格式更重要。










