商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Composer查看已安装包的列表_确认项目中所有插件版本【日常维护】

Composer查看已安装包的列表_确认项目中所有插件版本【日常维护】

  发布于2026-07-17 阅读(0)

扫一扫,手机访问

在 PHP 项目的日常维护中,composer show 是最常用却最容易忽略细节的命令之一。先说几个核心判断:它不只是用来“看包列表”的,更能帮你定位依赖冲突、排查版本异常。但很多人用错了——或者说,还没完全用透。

直接敲一行 composer show,它就能把项目里装的所有包和版本号全列出来,包括传递依赖。注意啊,这里有个容易踩坑的点:很多人以为它只显示 require 里的顶层依赖,但实际上,require-dev 里的开发依赖也会一并出现。除非你加上 --no-dev 参数,才能把它们过滤掉。

如果想只看你自己在 composer.json 里写的那几个顶层依赖,用 composer show --direct。要查某个具体包的详情——比如它被哪些包依赖、当前版本和约束条件——就指定包名,像 composer show lara vel/framework。至于脚本解析需求,加个 --format=json 就能输出整洁的 JSON 数据。

另一个实用技巧:composer show 本身不支持 --tree 参数,但 Composer 有对应的独立命令。执行 composer list | grep show 能看到所有与 show 相关的变体。实际用得最多的三个是:

  • composer outdated:检查哪些包有新版可升级,顺带提安全更新提示
  • composer show -t vendor/package:用 -t(即 --tree)展示该包的完整依赖树,排查为什么它拉了旧版或冲突版本时特别好用
  • composer show --name-only:只输出纯包名列表,适合在 CI 脚本里做自动化处理

说到这儿,可能有人会问:“那 composer infocomposer show 有什么区别?” 功能上高度重叠,但默认行为不同。指定包名时,composer info monolog/monologcomposer show monolog/monolog 输出几乎一样;但如果不指定包名,composer info 会直接报错,而 composer show 会列出全量。这就决定了各自的场景:日常巡检项目依赖总览,用 composer show;要深挖某个包到底是谁引入的,用 composer show -t vendor/package 查它的上游。CI 环境中提取顶层依赖列表,composer show --direct --name-only 稳得很,不用依赖特定格式的文本解析。

最后,提醒一个容易栽跟头的细节:composer show 显示的版本号不一定代表 vendor/ 目录里的真实状态。如果你改过 composer.json 但没执行 composer installcomposer update,它读的还是 composer.lock 里的记录——万一你手动删过 vendor/ 里的某个包,它照样照常显示版本号。最稳妥的做法是维护前先跑一次 composer install --dry-run,看是不是“Nothing to install or update”。如果有差异,说明环境已经不干净了。另一个隐藏坑:show 命令不校验包文件完整性,哪怕 vendor/autoload.php 被人误删,它依然会报平安。所以,依赖 composer show 的结果前,最好先确保 composer.lockvendor/ 目录一致。

Composer查看已安装包的列表_确认项目中所有插件版本【日常维护】

本文转载于:https://www.php.cn/faq/2349256.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注