composer show -s vendor/package-name 直接输出已安装包的原始 composer.json 内容(纯 JSON,无格式化),需包已通过 composer install 或 require 安装,否则报错;未安装时须查 Packagist API 或源码仓库。

composer show -s 查看包的 composer.json 原始内容
直接用 composer show -s <package-name> 就能输出目标包的 composer.json 文件原始 JSON 内容,不带格式化、不走解析逻辑,最接近源文件。比如想看 monolog/monolog 的定义:composer show -s monolog/monolog。这个命令依赖本地已安装的包(或已缓存的元数据),如果包没装过,会报错 Package <name> not found。
- 必须已通过
composer require或composer install安装过该包,否则无法读取 -
-s是--source的缩写,不是“show source”那种含义,而是指“显示源 composer.json” - 输出是纯 JSON,没有换行缩进,适合管道处理(如
| jq '.'或| python -m json.tool)
composer show 也能查字段但不输出完整 JSON
composer show <package-name>(不加 -s)只展示解析后的摘要信息:版本、描述、依赖、自动加载配置等,这些是 Composer 解析 composer.json 后生成的视图,不是原始内容。它会忽略注释、字段顺序、空格、未被识别的自定义字段(比如 phpstan 或 pest 相关配置)。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 适合快速确认包是否装了、用了哪个版本、有没有 autoload 映射
- 看不到
scripts全貌,也看不到config或extra下的非标准键 - 若包有多个版本共存(如通过
pathrepo 引入),composer show只显示当前启用的那个
没安装包时怎么查远程 composer.json?
如果只是想预览还没 require 的包的内容,不能靠 composer show。得绕道:用 curl 直接请求 Packagist API,例如:curl -s "https://packagist.org/p/monolog/monolog.json" | jq -r '.packages."monolog/monolog"[0].dist.source.url' | xargs -I {} curl -s {}/composer.json。但更稳的方式是用 composer global require jenssegers/package-info 这类工具,或直接访问 https://packagist.org/packages/<vendor>/<package>/composer.json(Packagist 网站支持直接渲染)。
- Packagist 页面上点 “Source” 标签页,就能看到高亮渲染的
composer.json - API 返回的是压缩版 JSON,含大量冗余字段(如所有历史版本),需自己过滤
- 私有包或 VCS 包(如 GitHub URL)无法通过 Packagist 查,只能 clone 后手动 cat
composer.json
为什么不要用 composer dump-autoload 或 config 命令来查?
composer dump-autoload 只生成 autoloader 文件,不读取或输出任何 composer.json;composer config 只管全局或项目级的 composer.json 配置(如 github-protocols),跟包自身的 composer.json 无关。这两个命令根本不在同一个数据层级上,强行混用只会浪费时间。
-
composer validate能校验当前项目的composer.json,但不涉及第三方包 - 试图用
composer install --dry-run推断依赖结构,也无法拿到具体包的 JSON 内容 - 真正要查某个包的定义,核心就两条路:本地已装 →
composer show -s;未装 → 查 Packagist 或源仓库
composer show 默认就输出 JSON —— 它默认只输出人话摘要,漏掉 -s 就白跑一趟。另外,composer show -s 对 path repository 包的支持不稳定,有时会 fallback 到 dist 源而非本地文件,这时候得手动打开 vendor/<vendor>/<package>/composer.json 看。

















