composer list 显示 composer 自身及已安装插件的所有可用命令,按字母排序、含简短说明,不含隐藏命令、废弃别名或 scripts 中定义的项目级命令;新插件需执行 composer global update 才可见。

composer list 能看到哪些命令?
直接运行 composer list 就能看到所有可用命令,按字母顺序排列,每行带一句简短说明。它不区分“常用”或“冷门”,只要 Composer 安装了插件(比如 composer-unused 或 phpstan 的集成命令),也会列出来。
- 终端支持分页时会自动启用(类似
less),按q退出 - 输出不含隐藏命令(如
composer _complete),也不含已废弃但尚未移除的别名 - 如果你刚装了新插件却没出现在列表里,大概率是没执行
composer global update或插件未正确注册
怎么快速查某个命令具体怎么用?
所有 Composer 命令都支持 -h 或 --help,这是最可靠、最及时的文档来源——比查官网还准,因为反映的是你本地版本的实际行为。
-
composer install -h会告诉你--no-dev是跳过 require-dev,--dry-run是模拟执行不真改文件 -
composer require -h会明确标出--dev和--no-update的互斥关系,避免你加了两个还奇怪为啥报错 - 别依赖记忆:哪怕你写过十遍
composer dump-autoload,加个-h也能确认当前版本是否支持--optimize(旧版不支持,新版已弃用)
为什么有时 composer list 显示的命令在别的项目里用不了?
不是命令消失了,而是命令来源不同:有些是全局安装的插件提供的,有些是项目根目录 composer.json 里通过 scripts 定义的自定义命令(比如 "post-install-cmd": "php artisan optimize"),它们不会出现在 composer list 输出中。
-
composer list只显示 Composer 自身 + 全局/本地已激活插件注册的命令,不解析scripts - 想看项目级脚本?运行
composer run --list(Composer 2.5+)或直接看composer.json的scripts字段 - 常见坑:在 CI 环境里用
composer global require装了hirak/prestissimo,结果发现composer list没它——因为那是加速器,不提供新命令,只是改了install行为
如何确认一个命令是否真的存在且可用?
别只信 composer list 的输出,更别靠 Tab 补全猜——有些命令名相似但行为天差地别,比如 composer show 和 composer info(后者早已被移除,但老教程还在提)。
- 最稳做法:
composer 命令名 -h,如果返回帮助信息,说明它存在且可用;如果报Command "xxx" is not defined,那就是没装、拼错、或版本太低 - 遇到插件命令不确定?先查插件文档,再运行
composer global show或composer show vendor/plugin-name确认是否已安装 - 最容易被忽略的一点:某些命令(如
composer outdated)在锁文件缺失或未安装依赖时会静默失败或只输出警告,务必先确保composer install成功执行过










