composer list 不支持内置模糊搜索,需用 composer list --no-ansi | grep 关键词过滤;别名如 inst、up 等不显示在 list 中,须查命令帮助确认;插件命令需安装启用且兼容,缓存可能导致列表滞后,可用 --no-cache 刷新。

composer list 命令本身不支持模糊搜索或过滤
直接运行 composer list 会输出全部命令(含内置和插件扩展的),动辄上百行,肉眼很难定位目标。它不接受 --grep、-f 或类似 git branch -a | grep test 的管道过滤——因为 Composer 在终端未检测到 TTY 时会禁用彩色输出并可能截断部分命令描述,导致 grep 匹配不稳定。
用 shell 管道配合 grep 筛选关键词最实用
实际开发中最快的方式是组合使用:composer list 输出纯文本后交给 grep 处理。注意加 --no-ansi 避免控制字符干扰匹配:
composer list --no-ansi | grep require
常见有效关键词包括:
-
require:查require、require-dev相关操作 -
update:定位update、self-update、outdated -
dump:找dump-autoload -
show:匹配show、outdated、licenses -
run:筛选run-script及其别名
别名不会单独列在 list 输出里,得看命令帮助
Composer 不把别名(如 inst 是 install 的别名)写进 composer list 的主列表,它们只出现在对应命令的帮助页中。想确认某个缩写是否有效,得查具体命令的帮助:
composer install --help | head -n 1
输出类似 Usage: install [options] [--] [,但不会显示 inst;而运行 composer inst --help 成功,就说明该别名可用。官方文档中明确列出的别名只有:inst、up、rm、ls、di、dr、du —— 这些是硬编码在源码里的,不是用户可配置的。
插件命令可能不显示,除非已安装且启用
像 phpstan、larastan 或 composer-normalize 这类通过插件注册的命令,只有在 composer.json 中声明并执行过 composer install 后才会出现在 composer list 输出中。如果没看到预期命令,先检查:
- 插件是否已在
require-dev中声明 - 是否运行过
composer install或composer update - 插件的
composer-plugin-api版本是否与当前 Composer 兼容(例如 Composer 2.x 不支持某些 v1 插件)
插件命令一旦生效,名字就和其他命令一样参与 grep 过滤,无需特殊处理。
真正容易被忽略的是:Composer 2.2+ 默认启用「命令缓存」,有时修改插件或升级后 list 输出未及时更新,此时加 --no-cache 强制刷新更可靠。










