使用 composer show --tree 可递归展示依赖树,推荐结合 --no-dev、--max-depth=N、grep 和 --format=json 等参数控制范围、限制深度、精准搜索及结构化输出,提升可读性与分析效率。
使用
可以递归列出当前项目的完整依赖关系树,但默认输出可能层级过深或信息冗余。要让依赖树更清晰,关键在于控制显示范围、过滤无关项,并配合其他参数提升可读性。
只显示直接依赖及其子树
默认会从所有已安装包展开,容易淹没重点。建议先聚焦项目直接声明的依赖:
运行
(如
),只查看某个核心包的依赖路径
或用
排除开发依赖,减少干扰分支
限制树的深度避免无限展开
某些包(如
)依赖链极长,导致输出几百行。可用
控制层级:
php版微信js-sdk支付接口类
php版微信js-sdk支付接口类
下载
:仅显示 Laravel 及其一级、二级依赖
数值设为 1 时只看直接依赖;设为 3 可兼顾深度与简洁性
结合 grep 精准定位关键包
当需要确认某组件是否被引入、或排查冲突时,终端搜索比人工扫屏高效:
:查 monolog 及其上下文依赖路径
:提取所有顶层包名去重,快速掌握主干依赖
用 --format=
js
on 获取结构化数据
若需进一步分析(比如统计重复版本、生成可视化图),JSON 输出更可靠:
返回标准 JSON,方便脚本解析
配合
工具可筛选字段,例如:
composer show --treecomposer show --tree your-vendor/package-namelaravel/frameworkcomposer show --tree --no-devsymfony/console--max-depthcomposer show --tree --max-depth=2 laravel/frameworkcomposer show --tree | grep -A 5 -B 2 "monolog"composer show --tree | grep "^\w" | sort -ucomposer show --tree --format=json symfony/http-kerneljqcomposer show --tree --format=json | jq '.[].requires | keys[]'