使用composer show命令可查看已安装的包列表,包括直接与间接依赖;通过composer show -i可聚焦直接依赖,composer show -t以树状结构展示依赖关系,composer depends命令则用于追踪某包被谁依赖;结合composer why-not和composer.lock文件分析,能有效排查版本冲突并生成依赖报告,便于团队协作与审计。

要查看Composer已安装的包列表,最直接的方式就是使用
composer show
composer.json
composer show
了解项目依赖清单,主要通过Composer提供的几个命令和对
composer.lock
首先,最常用的就是
composer show
composer show
composer show -i
composer show --installed
composer.json
-i
composer show -t
composer show --tree
composer show <package-name>
composer show symfony/console
其次,
composer depends
composer depends <package-name>
symfony/yaml
composer depends symfony/yaml
composer depends <package-name> --tree
--tree
除了命令行,
composer.lock
这确实是个常见的问题,尤其是在大型项目中,依赖层级一深,很容易混淆。
项目中的直接依赖,就是你在
composer.json
require
require-dev
要快速识别它们,我通常会这么做:
composer.json
require
require-dev
composer show -t
monolog/monolog
psr/log
monolog/monolog
psr/log
composer.json
composer show
composer show
composer.json
composer show
composer.json
composer show -i
一开始接触Composer,我也没搞明白直接和间接依赖的区别,直到有一次升级一个核心库,结果牵连了一堆看似不相关的包,才意识到这其中的门道。理解这个区分,对于控制项目体积、排查依赖冲突,甚至进行安全审计都至关重要。
依赖版本冲突是Composer用户最头疼的问题之一,尤其是在维护老项目或者引入新的、有严格版本要求的库时。Composer的错误信息虽然详细,但有时也需要一些技巧去解读。
我记得有一次,一个老项目死活不让我升级PHPUnit,
composer update
排查冲突,我通常会按以下步骤来:
composer why-not <package-name> <version>
symfony/yaml
^5.0
^4.0
composer why-not symfony/yaml 5.0
symfony/yaml 5.0
composer show -t
why-not
composer show -t
composer depends <package-name>
composer depends <problematic-package-name>
解决冲突通常意味着你需要调整
composer.json
将项目依赖清单导出或生成报告,对于团队协作、安全审计、许可证合规性检查以及新成员快速了解项目技术栈都非常重要。仅仅是口头描述或者让大家自己跑命令,效率会很低,而且容易出错。
有几种方法可以实现这一点:
简单的文本输出: 最直接的方式就是将
composer show
composer show -i > project_dependencies.txt
或者,如果你需要更详细的树状结构:
composer show -t > project_dependencies_tree.txt
这种方法简单快捷,生成的文本文件易于阅读,适合快速分享或作为文档的一部分。但缺点是缺乏结构化数据,不方便进行自动化处理。
解析 composer.lock
composer.lock
jq
cat composer.lock | jq '.packages[] | {name: .name, version: .version, reference: .source.reference, license: .license}' > dependencies_report.json这个命令会从
composer.lock
利用第三方工具或集成到CI/CD流程: 很多现代的CI/CD(持续集成/持续部署)工具和安全审计服务都内置了对Composer依赖的分析功能。它们可以直接读取
composer.lock
Roave/SecurityAdvisories
我们团队内部就遇到过一个问题,新来的同事在本地
composer install
composer.lock
以上就是Composer如何查看已安装的包列表_项目依赖清单展示与管理的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号