运行 composer install 用 -vvv 可查看 http 请求、git clone、unzip 等完整细节;-vv 适合 ci,-vvv 易致日志超限;dump-autoload 等命令加 --verbose 无效。

运行 composer install 时怎么看到完整日志
加 --verbose 就行,但要注意层级:默认是 -v(单级),想看 HTTP 请求、脚本执行细节、包解压过程,得用 -vv 或 -vvv。比如:composer install -vvv 会打印出所有 Guzzle 请求头、git clone 命令、unzip 调用路径,甚至 vendor 目录下每个文件的写入顺序。
常见错误是只输 --verbose 却没注意它等价于 -v,信息量远不如 -vv。另外,如果命令卡住,-vvv 能帮你确认是卡在 DNS 解析、GitHub 限流,还是某个 post-install-cmd 脚本里死循环。
composer update 为什么加 --verbose 后报错更清楚
因为 update 涉及依赖图重算和版本回溯,静默模式只告诉你「无法解决依赖」,而 -vv 会逐行输出 solver 的尝试路径,比如:Trying: monolog/monolog:2.9.0 → conflict with phpunit/phpunit:9.6.*。这比看最终的 Your requirements could not be resolved 错误有用得多。
实操建议:
- 先用
composer update --dry-run -vv预演,不改 lock 文件也能看到冲突点 - 如果报
Root package requires ... but it is not present,-vv会指出是哪个 require 被解析成空值(比如环境变量未加载导致${ENV}展开失败) - 避免在 CI 环境直接用
-vvv,日志太长可能触发超时或被截断,-vv通常够用
哪些命令默认不支持 --verbose,容易白加
composer dump-autoload、composer clear-cache、composer diagnose 这些命令本身不走下载/安装流程,加 --verbose 不会多输出实质信息——它们要么成功,要么报明确错误(如 Could not open input file: composer.phar),不存在中间态需要展开。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
典型误操作:
- 对
composer self-update加-vv,其实只多打一行Downloading...,没用 - 在
composer run-script后加--verbose,但脚本本身没做日志透传,结果还是安静执行 - 以为
--verbose能让composer show显示包的完整依赖树,实际要用composer show -t
CI/CD 里用 --verbose 的真实代价
不是所有场景都适合开 verbose。在 GitHub Actions 或 GitLab CI 中,-vvv 可能让单次 composer install 日志暴涨到 10MB+,触发平台日志截断(GitLab 默认 4MB 上限),反而丢失关键错误行。
更稳妥的做法:
- CI 默认只用
-v,出错再手动重跑带-vv的 job - 用
COMPOSER_MEMORY_LIMIT=-1配合-vv,避免因内存不足导致 verbose 日志中途被 kill - 如果必须存全量日志,把输出重定向到文件:
composer install -vvv 2>&1 | tee install.log,再上传 artifact
verbose 是把双刃剑:信息越细,越容易定位真实瓶颈;但也越容易掩盖真正该看的那一行。别让它变成日志噪音过滤器。










