信息发布→ 登录 注册 退出

Composer的show --self命令能告诉你关于项目本身的哪些信息? (元数据查询)

发布时间:2026-01-10

点击量:
composer show --self 仅显示当前项目 composer.json 定义的 root package 元数据,如 name、description、require 等,不显示 version、实际安装版本、插件或脚本配置。

composer show --self 显示的是当前项目的 root package 信息

它不显示已安装依赖的详情,只聚焦于 composer.json 中定义的本项目自身(即 root package)的元数据。这个命令本质是读取当前项目 composer.json 的内容并格式化输出,不是运行时状态快照。

它能查到的字段取决于 composer.json 的实际定义

常见可显示项包括:namedescriptiontypelicenseauthorsrequirerequire-dev(仅列出约束,不含已安装版本)、autoload 配置等。但以下内容不会出现:

  • version 字段:即使写了也不会显示 —— Composer 认为 root package 没有“固定版本”,除非你用 composer install --no-dev + composer.lock 锁定,否则它默认是 dev-main 或类似占位符
  • 实际安装的依赖版本:那是 composer show(不带 --self)或 composer list 的职责
  • 插件或脚本配置(如 scripts):这些字段被忽略,不参与输出

和 composer info --self 的区别在哪?

两者输出几乎一致,因为 composer infocomposer show 的别名。但注意:composer show --self 在 Composer 2.2+ 中更稳定;旧版本中若项目未初始化(无 composer.json),它会报错 Could not find package with name "self",而不是静默失败。

composer show --self
name     : myapp/api-service
descrip. : Internal REST API for user management
type     : project
license  : MIT
authors  : John Doe 
require  : php: ^8.1, guzzlehttp/guzzle: ^7.5
autoload : psr-4: {"App\\": "src/"}

真正想查“当前项目实际用了哪些包和版本”该用什么?

别依赖 --self。直接运行:

  • composer show:列出所有已安装依赖及其版本
  • composer show -t:加树形结构,看清依赖层级
  • composer show myapp/api-service(显式指定 name):此时才可能看到解析出的 version(来自 composer.lockpackages 段落),但前提是 lock 文件存在且该 package 被当作依赖记录了 —— 这种用法非常规,容易误判

root package 的“真实版本”本质上由 Git tag、VCS 分支或 composer.lock 中的 packages-dev 条目间接体现,show --self 不负责揭示这点。

标签:# require  # 它会  # 你用  # 它能  # 不带  # 报错  # 不含  # 写了  # 用了  # 那是  # 的是  # php  # 格式化输出  # 区别  # rest api  # ai  # app  # composer  # json  # git  # js  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!