composer show才是查看已安装包的正确命令,composer list仅列出Composer自身命令;show默认显示顶层依赖,加--tree可查完整依赖树,加--installed导出已安装扁平列表。

composer list 命令不显示已安装包,别用错
composer list 只列出 Composer 自带的命令(如 install、update),不是查包用的。新手常在这里卡住,输完发现全是命令帮助,和“已安装哪些包”完全无关。
真正有效的命令是 composer show
composer show 才是查看当前项目已安装依赖的核心命令:
- 不加参数:列出所有已安装包及其版本,按字母排序,格式为
vendor/package version description -
composer show --installed:效果相同,显式强调“只看已安装”,可读性略高 -
composer show vendor/package:查单个包详情,含依赖树、许可证、源码地址等 -
composer show --tree:显示依赖层级结构(需 Composer 2.2+),一眼看出谁依赖了谁
区分全局 vs 项目级安装
Composer 包默认只在当前项目目录生效,没有“系统级已安装包”的概念。但你可能通过 composer global require 装过全局工具(如 laravel/installer):
- 查项目本地依赖:
composer show(在项目根目录下运行) - 查全局安装包:
composer global show(注意必须带global) - 全局包路径通常为
~/.composer/vendor/(Linux/macOS)或%APPDATA%\Composer\vendor\(Windows),但不要直接翻文件夹——global show更可靠
常见误判:vendor 目录空但 show 有输出?
这说明 composer.lock 存在且被读取,但 vendor/ 尚未生成(比如刚克隆项目还没 install)。此时 composer show 仍会显示锁文件记录的包列表,但它反映的是“计划安装”,不是实际已解压的包。
确认是否真已安装,看两点:
- ls vendor/(Linux/macOS)或 dir vendor(Windows)是否有对应目录
- composer show 输出末尾是否带 (installed) 标记(Composer 2.5+ 默认启用)
最稳妥的方式永远是先 composer install 或 composer update,再查。











