composer show是查看已安装包的正确命令,composer list仅列出composer自身命令;show读取vendor/composer/installed.json显示项目依赖,global show查全局包,outdated仅检查可升级包。

composer list 命令只能看命令列表,不是查已装包
很多人输 composer list 后发现列出的全是命令(如 composer install、composer dump-autoload),根本没看到包名——这很正常,list 本就不干这事。真要查已安装的包,得用专门的命令。
用 composer show 查当前项目所有已安装包
composer show 是最直接的方式,它读取 vendor/composer/installed.json(或 composer.lock),输出当前项目中所有已安装的依赖包及其版本。
常见用法:
-
composer show:列出全部包,含 dev 包(即require-dev中的) -
composer show --no-dev:只显示生产环境依赖(require中的) -
composer show monolog/monolog:查单个包的详细信息(版本、依赖、autoload 等) -
composer show -i:仅显示包名和版本号,适合快速扫一眼
注意:composer show 默认只显示当前项目的 vendor,不递归查全局安装的包(比如用 composer global require 装的)。
查全局已安装包要用 composer global show
如果你运行过 composer global require laravel/installer 这类命令,那些包装在全局 vendor 目录里(通常是 ~/.composer/vendor/ 或 ~/Library/Application Support/Composer/vendor/),必须显式加 global 才能查到。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
操作方式:
-
composer global show:列出所有全局安装的包 -
composer global show --format=json:输出 JSON,方便脚本解析
容易忽略的一点:全局命令的执行权限依赖 ~/.composer/vendor/bin 是否在 $PATH 中,但 composer global show 本身不检查这个,它只管读 vendor 目录。
composer outdated 能看出哪些包可升级,但不是“已装列表”的替代品
composer outdated 的作用是比对 composer.lock 和 Packagist 上的最新版本,输出可更新的包。它默认只显示有新版的包,且不显示已锁定在特定 commit 或分支的包(比如 "dev-master#abc123")。
所以别指望靠它来“确认某个包是否真的装上了”——它可能压根不显示一个已安装但无更新的包。真正验证安装状态,还是得靠 composer show 或直接 ls vendor/。
顺带一提:composer show 的结果受 composer.lock 约束,如果删了 lock 文件又没 run install,它可能反映的是 composer.json 的声明而非实际 vendor 内容——这种边缘情况,直接 ls vendor/ 最靠谱。










