composer show 是查看当前项目全部已安装包最轻量可靠的方式,不加参数即显示 require 和 require-dev 下所有包;–tree 会隐藏 dev 包;导出用重定向或 –format=json;composer.lock 才是权威快照来源。
composer show 能直接列出所有已安装包
不需要额外插件或导出命令,composer show 就是查看当前项目依赖树最轻量、最可靠的方式。它默认显示所有已安装的包(包括 require 和 require-dev),按字母序排列,格式清晰。
常见误操作是加 --tree 后只关注顶层依赖,反而漏掉 dev-only 包;其实不带参数就能看到全部:
composer show
如果想导出为文本文件留档,直接重定向即可:
-
composer show > deps.txt—— 纯文本,适合人工查阅 -
composer show --format=json > deps.json—— 结构化数据,方便后续解析
composer show –tree 会隐藏 require-dev 包
这个命令只展示「实际被加载」的依赖路径,默认跳过仅用于开发阶段的包(比如 phpunit/phpunit、friendsofphp/php-cs-fixer)。如果你在 CI 中需要完整清单,或者要审计安全范围,单靠 --tree 是不完整的。
验证方式很简单:
- 运行
composer show | wc -l记下总行数 - 再运行
composer show --tree | wc -l,通常少十几到几十行 - 差异部分基本就是
require-dev下的包
composer.lock 是最权威的依赖快照来源
当项目部署或做合规审计时,composer.lock 比 composer show 更值得信赖:它记录了确切的 commit hash、dist URL、install-path,甚至包含平台配置(PHP 版本、扩展要求)。