composer graph 和 composer viz 命令在 composer 2.9.6 中并不存在,官方源码未实现;推荐使用 kylekatarnls/composer-dependency-graph 生成交互式 html 依赖图,需通过本地服务器打开,箭头表示“被依赖”关系。

composer graph 或 composer viz 命令根本不存在
别再试 composer graph 或 composer viz,这两个命令在 Composer 2.9.6(当前最新版)里压根没实现,报错 Command "graph" is not defined 是必然结果——不是你漏装插件、PATH 没配对,是官方源码里就没这功能。
用 kylekatarnls/composer-dependency-graph 生成 HTML 图最省事
这是目前最轻量、开箱即用的方案:不依赖系统级 Graphviz,纯 HTML + JS,支持拖拽、缩放、悬停看版本和来源,适合日常快速排查。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 安装:
composer require --dev kylekatarnls/composer-dependency-graph - 生成:
./vendor/bin/composer-dependency-graph,默认输出graph.html - 聚焦分析(避免图过密):
./vendor/bin/composer-dependency-graph --filter="laravel/*" - 注意:
composer.lock必须最新——刚改完composer.json得先跑composer update,否则新包不会出现在图里
HTML 文件必须通过本地服务器打开
直接双击 graph.html 会因浏览器 CORS 策略失效,所有交互(拖拽、悬停)都不工作。
- 推荐临时起服务:
python3 -m http.server 8000,然后访问http://localhost:8000/graph.html - Mac/Linux 用户若没装 Python3,可用
php -S localhost:8000替代 - Windows 用户建议用 VS Code 的 Live Server 插件,或安装 Python 后执行上述命令
箭头方向反直觉但必须记住
图中箭头是「被依赖」关系:A → B 意味着 B 用了 A,不是 A 依赖 B。这点和中文语序相反,但所有 Graphviz 渲染工具(包括 composer-unused --format=dot)都遵循此逻辑。
- 发现双向箭头闭环(
A → B → A)?立刻查composer.json,实锤循环依赖 - 同一包多个版本节点(如
guzzlehttp/guzzle:7.4和7.8并存)?说明版本冲突高发,马上执行composer why guzzlehttp/guzzle - 某个包节点孤立无连接,但代码里又实际用了它的类?大概率被
replace或provide隐藏了,composer depends查不到,得结合phpdg做静态扫描
vendor/ 当前状态,不是 composer.json 声明,也不是 composer.lock 快照——它只告诉你“此刻装了什么”,不保证“该不该装”或“能不能跑”。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










