composer show --suggests 可一次性列出所有已安装包的 suggest 字段内容,仅读取 vendor/ 下已安装包的 composer.json,不查远程数据。
composer
suggests 命令能直接列出所有已安装包的推荐项
Composer 没有叫
的独立子命令,但自 Composer 2.2 起,
支持
参数(注意是复数形式),这才是查看建议的正确入口。运行它会一次性汇总当前项目中所有已安装包的
字段内容,比如:
输出类似:
这个命令只读取 vendor/ 下已安装包的
,不查 Packagist 远程数据,所以结果完全反映你当前环境的真实依赖状态。
为什么
后没看到建议?检查是否静默模式或 CI 环境
很多开发者以为装完包就该看到提示,结果却什么也没输出——这通常是因为:
你在 CI 或 Docker 构建中用了
(quiet)或
参数,
提示默认被抑制
你执行的是
,而
只在 install/update 的“交互式”输出阶段显示(非错误流)
某些包的
字段写在
包里,而你用
安装了生产环境,那些 dev-only 的建议就不会出现
验证方式:临时去掉所有静默参数,跑一次
,就能看到完整建议流。
想查某个具体包的建议?用
当你怀疑某个包可能漏掉了关键扩展(比如缓存、日志、命令行支持),但不确定它到底建议了什么,最准的方式是定向查询:
Docker Sandbox
创建并管理 Docker 沙箱虚拟机环境以安全执行代理。适用于运行不受信任代码、探索包或隔离代理工作负载。支持 Claude、Codex、Copilot、Gemini 和 Kiro 代理,并提供网络代理控制。
下载
输出中会明确列出
小节。注意:
默认只显示稳定版信息;如果该包尚未安装(比如你只是在 composer.
js
on 里写了 require 但还没 install),它会报错“Package not found”,这时得先
或改用
+ 手动查 Packagist 页面。
常见误操作是把
和
混淆:比如看到
就以为必须装,其实它只是可选增强,不装也不影响基础功能——除非你的代码里真调用了
相关类且没做运行时判断。
别只看建议,要结合实际功能缺口反向排查
字段本身不会告诉你“你现在缺什么”,它只说“别人可能需要什么”。真正容易被忽略的点是:有些包把本该是
的东西错放进了
,导致你运行时报错才意识到——比如某 SDK 建议
,但它的 HTTP 客户端逻辑根本没做空实现兜底,一调就炸。
实用做法:
遇到运行时报错如
,立刻查报错类所属包的
输出,确认它是否把 Guzzle 列在
里
用
(Composer 2.5+)反查谁依赖了某个扩展,比如
,能快速定位是不是某个 dev 工具偷偷要求了你不需要的功能
定期运行
,过滤出扩展类和常用工具建议,人工核对是否已按需安装
最麻烦的情况是:建议包装了,但没生效——比如 Laravel 建议
,你装了却还是不能跑
,那大概率是
权限或自动加载没刷新,这时候
比重装包更有效。
composer suggestscomposer show--suggestssuggestcomposer show --suggestslaravel/framework suggests:
symfony/console: For artisan commands
monolog/monolog: For logging support
guzzlehttp/guzzle suggests:
psr/log: To enable logging middleware
ext-zip: To enable ZIP response decodingcomposer.jsoncomposer require-q--no-ansisuggestcomposer update --no-interactionsuggestsuggestrequire-dev--no-devcomposer install --verbosecomposer show vendor/packagecomposer show laravel/frameworksuggestscomposer showcomposer installcomposer searchsuggestrequire"ext-intl": "For better i18n"intlsuggestrequiresuggestguzzlehttp/guzzleClass 'GuzzleHttp\Client' not foundcomposer showsuggestscomposer depends vendor/packagecomposer depends ext-pcntlcomposer show --suggests | grep -E "(ext-|monolog|console|log)"symfony/consolephp artisanvendor/bin/artisancomposer dump-autoload