Composer show --self 查看当前项目详细信息【工具】

发布时间 - 2026-01-31 00:00:00    点击率:
composer show --self 查的是当前项目自身(即 composer.json 中定义的 root package)的元数据,输出完全源自本地 composer.json 字段解析,不读 composer.lock 也不查 vendor/ 状态,可显示 name、description、require 等字段,但 version 通常不显示。

composer show --self 到底查的是谁的信息?

它查的是当前项目自身(即 composer.json 中定义的 root package)的元数据,不是 Composer 工具本身的版本,也不是已安装依赖的版本 —— 这是最多人混淆的一点。如果你在项目根目录下运行 composer show --self,输出内容完全来自本地 composer.json 文件的字段解析,不读 composer.lock,也不查 vendor/ 里的实际安装状态。

它能显示哪些字段?哪些永远不显示?

能显示的字段取决于你 composer.json 里写了什么,常见有:namedescriptiontypelicenseauthorsrequire(只列约束,如 "php": "^8.1")、autoload 配置等。

  • version 字段即使写了,也大概率不显示 —— Composer 认为 root package 没有“固定版本”,除非你打 Git tag 或靠 composer.lock 间接推断
  • 实际安装的依赖版本、插件(plugins)、脚本(scripts 全部键名)、仓库(repositories)配置,统统不会出现
  • require-dev 会列出约束,但不会标注“这是 dev 依赖”;也不会告诉你这些包是否真被装进 vendor/ 了

什么时候该用它?什么时候不该用?

适合快速核对项目基础定义是否写全、命名是否一致、autoload 映射是否按预期声明 —— 尤其在 CI/CD 脚本里做预检时很轻量。

  • ✅ 查 autoload 是否配置了 "App\\": "src/",避免 PSR-4 加载失败
  • ✅ 确认 name 字段是否符合私有 Packagist 的命名规范(如 myorg/myapp
  • ❌ 想知道 “guzzlehttp/guzzle 装的是不是 7.5.0?” → 改用 composer show guzzlehttp/guzzle
  • ❌ 想确认当前项目“实际发布版本号” → 它给不了,得看 Git tag 或 composer.lock 里的 packagespackages-dev 条目

composer showcomposer info 的关键区别

composer show --selfcomposer info --self 输出几乎一样,因为 infoshow 的别名;但 composer show(无参数)默认列出所有已安装依赖,行为完全不同。

  • 旧版 Composer(composer.json),composer show --self 会报错 Could not find package with name "self",而不是静默跳过
  • 想查“整个依赖树”,必须用 composer show --tree,加 --self 后这个选项无效
  • 如果误以为 --self 能暴露 Composer 自身版本(比如 2.7.0),那是错的 —— 那是 composer --versioncomposer global show composer/composer 的职责

真正容易被忽略的是:它不反映运行时真实状态。一个 composer.json 写着 "monolog/monolog":

"^3.0",但 composer show --self 不会告诉你现在装的是 3.5.0 还是 2.10.0 —— 它只忠于 JSON 文件的文本定义,仅此而已。


# php  # js  # git  # json  # composer  # app  # 工具  # 区别  # require  # 的是  # 这是  # 那是  # 什么时候  # 写了  # 装进  # 不读  # 不查  # 最多  # 你在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  手机网站制作与建设方案,手机网站如何建设?  如何在阿里云虚拟服务器快速搭建网站?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  微信小程序 配置文件详细介绍  UC浏览器如何设置启动页 UC浏览器启动页设置方法  如何安全更换建站之星模板并保留数据?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  网站建设保证美观性,需要考虑的几点问题!  使用C语言编写圣诞表白程序  微信小程序 HTTPS报错整理常见问题及解决方案  Laravel如何记录自定义日志?(Log频道配置)  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Python自动化办公教程_ExcelWordPDF批量处理案例  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何挑选优质建站一级代理提升网站排名?  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  js代码实现下拉菜单【推荐】  如何选择可靠的免备案建站服务器?  如何快速搭建安全的FTP站点?  如何在阿里云购买域名并搭建网站?  如何用PHP快速搭建高效网站?分步指南  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel如何创建自定义Facades?(详细步骤)  网站优化排名时,需要考虑哪些问题呢?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  米侠浏览器网页背景异常怎么办 米侠显示修复  实现点击下箭头变上箭头来回切换的两种方法【推荐】  浅谈redis在项目中的应用  高性价比服务器租赁——企业级配置与24小时运维服务  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  简单实现Android验证码  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控