不能,composer show 只显示已安装包的元数据,不包含任何命令别名信息;命令缩写(如 req、up)是 Composer 内置硬编码的,仅通过 composer list 查看,无法用 show 查询。

composer show 能查别名吗?不能,别名不在包信息里
Composer 没有“全局别名”或“命令短名”的概念,composer show 查的是已安装包的元数据(版本、autoload、require 等),不包含任何命令别名信息。你执行 composer list 看到的 dump-autoload、req 这类缩写,是 Composer 内置的命令别名,不是用户可配置或可查看的“设置项”。
-
req是require的官方内置别名,源码里硬编码的,无法增删改 -
composer show --all查的是远程包所有可用版本,和“别名”完全无关 - 试图用
composer show --name-only | grep req找命令别名?结果一定是空——它只输出包名,不输出命令名
哪些命令支持缩写?看 composer list 最右边一列
Composer 对部分常用命令提供了单字或双字缩写,比如 inst → install、up → update、di → diagnose。这些缩写不靠配置,而是写死在命令注册逻辑中,且只对“顶层命令”有效(require 可缩为 req,但 require --dev 不能缩成 req -d)。
- 运行
composer list,最右一列就是所有可用缩写,例如:show Shows information about packages - 缩写只匹配命令名前缀,
compo或comp都不能触发补全——必须是预设的那几个 - 自定义脚本(如
scripts里定义的post-install-cmd)不支持缩写调用
想自定义命令别名?只能靠 shell 别名,不是 Composer 责任
Composer 本身不提供 alias composer=co 这类能力,也不读取 .bashrc 或 zshrc。如果你想要 co install 代替 composer install,得自己配 shell 别名:
alias co='composer'
- 加到
~/.zshrc或~/.bashrc后,执行source ~/.zshrc生效 - 注意:这种 alias 对
composer global子命令也生效,co global show完全合法 - 别名无法穿透到 CI 脚本或 Dockerfile 中——那里必须写完整
composer
branch-alias 不是命令别名,别被名字骗了
extra.branch-alias 是包作者用来给开发分支(如 dev-main)映射语义化版本号(如 2.0.x-dev)的机制,和“命令怎么敲更短”毫无关系。它只影响 Packagist 上的依赖解析行为,不影响本地终端输入。
- 你在
composer.json里写"dev-main": "2.0.x-dev",是为了让别人require "your/package": "^2.0"能拉到dev-main分支 - 这个配置对
composer show、composer list、composer require的输入方式零影响 - 常见误操作:把
branch-alias当成“给自己的项目起个短名”,结果 downstream 项目根本拉不到——因为 Packagist 没同步,或者用了pathrepository










