如何使用Composer list命令快速查找可用的命令和别名?

13次阅读

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

如何使用Composer list命令快速查找可用的命令和别名?

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:查 requirerequire-dev 相关操作
  • update:定位 updateself-updateoutdated
  • dump:找 dump-autoload
  • show:匹配 showoutdatedlicenses
  • run:筛选 run-script 及其别名

别名不会单独列在 list 输出里,得看命令帮助

Composer 不把别名(如 instinstall 的别名)写进 composer list 的主列表,它们只出现在对应命令的帮助页中。想确认某个缩写是否有效,得查具体命令的帮助:

composer install --help | head -n 1

输出类似 Usage: install [options] [--] [...],但不会显示 inst;而运行 composer inst --help 成功,就说明该别名可用。官方文档中明确列出的别名只有:instuprmlsdidrdu —— 这些是硬编码在源码里的,不是用户可配置的。

插件命令可能不显示,除非已安装且启用

phpstanlarastancomposer-normalize 这类通过插件注册的命令,只有在 composer.json 中声明并执行过 composer install 后才会出现在 composer list 输出中。如果没看到预期命令,先检查:

  • 插件是否已在 require-dev 中声明
  • 是否运行过 composer installcomposer update
  • 插件的 composer-plugin-api 版本是否与当前 Composer 兼容(例如 Composer 2.x 不支持某些 v1 插件)

插件命令一旦生效,名字就和其他命令一样参与 grep 过滤,无需特殊处理。

真正容易被忽略的是:Composer 2.2+ 默认启用「命令缓存」,有时修改插件或升级后 list 输出未及时更新,此时加 --no-cache 强制刷新更可靠。

text=ZqhQzanResources