composer show 不支持模糊搜索,仅匹配已安装包的全名或前缀;查包详情需指定完整包名,查 autoload/scripts 用 -s,查依赖树用 --tree,查远程版本用 --all 并清缓存。

直接用 composer show 无法模糊搜索,它不是搜索引擎,而是已安装包的元数据探针——想查什么,必须知道包名或至少前缀;真要“搜索”,得靠 composer search 配合 composer show --all 管道过滤。
查已装包:不加参数只列顶层,别指望它显示 autoload 或依赖树
运行 composer show 时,它读的是 vendor/ 下的真实安装状态,不是 composer.json 里写的声明。输出只有三列:name、version、description,一行一个包。
- 只显示
require和require-dev中显式声明的包;如果执行过composer install --no-dev,require-dev里的包就不会出现 - 不展开子依赖,比如
laravel/framework拉进来的symfony/console不会列出来 - 不支持模糊匹配:
composer show log查不到monolog/monolog,必须写monolog或完整monolog/monolog - 输出太长?用管道:
composer show | less或composer show | grep -i "cache"
查单个包的 autoload 和 scripts:加 -s(--show-config)才看到关键配置
类找不到、自定义命令不执行,八成是 autoload 映射或 scripts 没生效。composer show -s vendor/package-name 能直接打出这两块字段,不用翻源码或 composer.json。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer show -s monolog/monolog会输出类似"Monolog\": "src/",说明MonologLogger对应vendor/monolog/monolog/src/Logger.php - 同时列出
scripts字段注册的钩子,比如post-install-cmd是否包含phpunit - 这个
-s选项在 Composer 2.2+ 才稳定支持;旧版本会报unrecognized option,别硬试 - 不加
-s时,默认只输出一行:monolog/monolog 3.5.0,容易误判为“查不到详情”
查依赖冲突:必须用 --tree,不是可选操作
--tree 不是展示你写了什么,而是还原 Composer 实际解析出的安装路径——这才是排查 “为什么 psr/log 装了 v2 和 v3” 的唯一可靠方式。
-
composer show --tree laravel/framework输出缩进树,例如:laravel/framework v10.48.12<br>└── symfony/console v6.4.7<br> └── psr/log 3.0.0
- 它只展示
composer.lock里已确定的路径;如果某包只在require-dev且你用过--no-dev,就不会出现 - 快速定位某依赖:
composer show --tree | grep guzzle,注意保留前导空格,否则缩进结构丢失 -
--tree不支持通配符:composer show --tree "laravel/*"会报错
查远程所有版本:用 --all(不是 -a),并清缓存确保最新
composer show --all vendor/package-name 绕过本地缓存,直连 Packagist API,返回该包所有可用版本摘要(含 dev-main、v7.9.0、8.0.0-rc1 等)。
- 必须用双横线
--all,-a是无效别名,会被忽略 - 常见问题:查不到刚发布的版本 → 先
composer clear-cache,再跑composer show --all vendor/package-name - 私有包查不到?确认已在
composer.json的repositories中配置对应源,或显式传--repository - 筛选特定主版本:
composer show --all guzzlehttp/guzzle | grep "v7.";Windows 用户用findstr替代grep
真正容易被忽略的是:命令执行位置和上下文。在子目录(如 packages/my-component)下运行 composer show,它默认读取当前目录的 composer.json —— 如果那里没声明目标包或没配私有源,--all 也查不到。得确认你在项目根目录执行,且 composer.lock 完整、缓存干净。

















