Composer update卡住通常因网络、Git克隆或依赖解析耗时,应先用-v/vv/vvv查看日志定位卡点,再通过--prefer-dist、换镜像源、调超时、清缓存等针对性解决。

Composer update卡住不动,通常不是程序崩溃,而是卡在某个耗时操作上,比如包下载、依赖解析或 Git 克隆。关键要先判断卡在哪一步,再针对性解决。
查看详细日志定位卡点
运行带详细输出的命令,观察最后停留在哪一行:
- composer update -v(显示详细过程)
- composer update -vv(更详细,含 HTTP 请求和 Git 操作)
- composer update -vvv(最高级别,含堆栈和原始命令)
常见卡点包括:Cloning into 'xxx'...(Git 克隆慢)、Downloading https://.../dist/xxx.zip(远程下载卡住)、Resolving dependencies through SAT(依赖求解超时)。
跳过 Git 克隆,改用 dist 包安装
默认情况下 Composer 会优先尝试 clone 源码(尤其 dev 分支),容易因网络或 SSH 配置卡住。强制走压缩包分发方式:
- 临时跳过:运行 composer update --prefer-dist
- 永久设置(当前项目):执行 composer config prefer-dist true
- 检查是否生效:运行 composer config | grep prefer
注意:若 composer.json 中指定了 "type": "git" 或使用了 dev-xxx 分支且未发布 tag,仍可能 fallback 到 clone;此时可考虑切换为稳定版本或加 "minimum-stability": "stable" 限制。
更换镜像源与超时设置
国内用户常因 packagist.org 直连缓慢导致卡住:
- 切到阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
- 增大超时时间(尤其大包下载):composer config -g process-timeout 3000(单位秒)
- 禁用 HTTPS 验证(仅调试用,不推荐长期开启):composer config -g secure-http false
验证镜像是否生效:运行 composer diagnose,看输出中 Repo packagist.org 是否已替换为镜像地址。
清理缓存并重试
损坏的缓存可能导致解析或下载异常:
- 清除所有缓存:composer clear-cache
- 删除 vendor 和 composer.lock:rm -rf vendor composer.lock(谨慎操作,确保 git 已提交)
- 再执行 composer install(比 update 更轻量,适合重建环境)
如果问题依旧,可尝试 composer update --no-plugins --no-scripts 排除插件或 post-install-cmd 干扰。
基本上就这些。多数情况是网络或镜像问题,定位后一两步就能解。不复杂但容易忽略细节。









