跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Composer怎么查看已装的包_Composer包列表查看方法【详解】

composer show 默认只显示顶层依赖,非全部已安装包;需加 --tree 查完整依赖树、--installed 导出已安装列表,因其仅解析 composer.lock 中的顶级 packages 字段,跳过间接依赖。 composershow 默认只显示你手动 require 的包,不是全部已安装的——想看完整列表,必须加
--tree
或
--installed
。 为什么
composer show
输出那么少? 它默认只读
composer.lock
里的顶层
packages
字段,跳过所有间接依赖(比如
monolog/monolog
被
symfony/console
拉进来,就不会出现)。这不是 bug,是设计如此。 没运行过
composer install
或
composer update
的项目,
composer show
会报错或为空——它依赖
vendor/composer/installed.json
或有效的
composer.lock
vendor/
被删了?那所有
composer show
命令都会失效,它不回退到锁文件做推测 包名大小写敏感:
symfony/console
和
Symfony/Console
是两个不同包,输错就返回
Package not found
查完整依赖树:用
--tree
,别靠肉眼拼 只有
--tree
能还原真实安装结构,它递归读取
vendor/composer/installed.json
中记录的嵌套
requires
,输出带缩进和箭头的层级关系。 示例输出片段:
symfony/http-kernel v6.4.7 └── symfony/event-dispatcher v6.4.3 └── psr/event-dispatcher ^1.0
如果用了
composer install --no-dev
,
require-dev
里的包(如
phpunit/phpunit
)不会出现在
--tree
结果里 终端宽度不够时长包名会被截断,建议加
| less -S
或重定向:
composer show --tree > deps.tree
导出干净列表给运维或 CI 用 别手写脚本去解析
composer.lock
——格式在 Composer 2.x / 3.x 间不稳定;用
composer show
自带的输出更可靠。 Composer 2.9.6 Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。 下载 导出纯文本全量列表(含版本,无颜色):
composer show --installed --no-ansi
只导出你亲手写的依赖(排除所有子依赖):
composer show --direct --format=plain
要带路径、autoload 等详细信息?加
--verbose
,但注意这会包含
vendor/
绝对路径,不适合跨环境分享 查全局包别用
composer show
,换
composer global show
composer show
完全无视全局配置,哪怕你在
/tmp
下执行,它也只扫当前项目的
vendor/
。全局包得用专用命令。 查是否真装了
laravel/installer
:
composer global show laravel/installer
,不是
composer show laravel/installer
只看自己手动
global require
的包(排除自动拉进来的依赖):
composer global show --direct
输出太长?加
--name-only
只留包名:
composer global show --name-only
最常被忽略的一点:没有
vendor/
目录时,所有
composer show
变体都失效——它不尝试重建、不 fallback、不提示“你可能需要先 install”,就直接沉默或报错。

相关文章