跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

composer怎么导出依赖清单_composer导出已安装包列表教程

composer show 是查看已安装包最轻量可靠的方式,读取 vendor/composer/installed.json,不依赖网络;加 -s 显示精简列表,--format=json 输出结构化数据,指定包名可查依赖树,--tree 展示完整依赖关系。 composer show 列出所有已安装包 直接运行
composer show
就能输出当前项目中所有已安装的依赖包及其版本号,这是最轻量、最可靠的方式。它读取的是
vendor/composer/installed.json
,不依赖网络,也不触发 autoload 重建。 常见错误是误用
composer list
——那只是列出 Composer 自带命令,不是你的依赖。 加
-s
参数(
composer show -s
)可显示精简列表,只含包名和版本,适合复制粘贴 加
--format=json
(
composer show --format=json
)输出结构化 JSON,方便脚本解析 想查某个具体包?直接
composer show monolog/monolog
,会显示其依赖树和详细信息 composer show --tree 查看完整依赖关系图 当你要确认某个包为什么被装进来(比如排查冲突或冗余),
composer show --tree
比单纯列表有用得多。它从 root 项目出发,逐层展开每个包所依赖的子包,缩进表示层级。 注意:这个命令默认只显示顶层直接依赖的树;如果某个间接依赖没出现在任何直接依赖的 require 里,它可能不会出现在根路径下——这不是 bug,是 Composer 的扁平化安装策略导致的。 输出可能很长,建议配合
grep
过滤,例如:
composer show --tree | grep "guzzlehttp"
Windows PowerShell 用户需用
findstr
替代
grep
该命令不支持
--format=json
,JSON 输出目前仅限于普通
show
导出为 lock 文件快照:composer install --dry-run 不真装也能验依赖 很多人想“导出清单”其实是为部署或审计做准备,这时候真正需要的不是人眼可读的列表,而是可复现、可校验的依赖快照——那就是
composer.lock
本身。 Composer 2.9.6 Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。 下载 如果你还没生成过 lock 文件,或者想验证当前
composer.json
能解析出什么确定版本,用
composer install --dry-run
最稳妥。它会计算依赖、输出将要安装的包和版本,但不写入
vendor
或修改
composer.lock
。 输出里包含
Package operations
区块,清晰列出每个包的源(dist / source)、版本、是否 dev 比
composer update --dry-run
更轻:后者会尝试升级,前者只按现有约束求解 CI 环境中常用它做预检,避免上线前才发现版本解析失败 别用 composer dump-autoload 导出依赖
composer dump-autoload
只是重新生成自动加载文件,跟依赖清单完全无关。有人看到它输出 “Generating autoload files” 就误以为在“导出”,结果白跑一轮还污染了
vendor/autoload.php
。 更隐蔽的坑是:某些旧脚本会把
composer install --no-install
当作“只导出”,但这个参数根本不存在——Composer 会静默忽略,然后照常安装。正确做法永远是用
--dry-run
或直接读
composer.lock
。
composer.lock
是权威来源,字段
packages
和
packages-dev
分别对应 require / require-dev 若需纯文本清单(如给安全团队),用
jq
提取:
jq -r '.packages[].name + "@" + .packages[].version' composer.lock
不要解析
vendor/autoload.php
或遍历
vendor/
目录——Composer 支持自定义安装路径,目录结构不可靠 依赖清单的本质不是“有哪些包”,而是“哪些确切版本被锁定”。盯着
composer.lock
看,比任何命令输出都准;而
composer show
是唯一既快又稳的人工检查方式。其他花活,大概率绕远路。

相关文章