composer下载中断怎么办_composer断点续传或重试方法

1次阅读

重试 composer install/update 通常可行,因其分阶段执行且保留临时文件;但 zip 损坏、installed.json 截断等需清理 vendor、清缓存后重试;配国内镜像源更治本。

composer下载中断怎么办_composer断点续传或重试方法

Composer install/update 半途失败后直接重试就行

Composer 本身没有传统意义的“断点续传”,但它的下载和安装是分阶段、可恢复的:包元数据(composer.lock)已写入,临时文件(vendor/composer/installed.jsonvendor/.cache/ 下的归档)大多保留,重跑 composer installcomposer update 会跳过已成功解压的包,只继续处理失败或未开始的部分。

哪些情况重试无效?得手动清理

常见于网络中断导致 zip 包损坏、校验失败,或 vendor/ 目录结构被部分写入但不完整。此时 Composer 会报类似错误:

The zip extension and unzip command are both missing(其实是上一步 zip 损坏,后续解压失败)
Failed to extract vendor/package-name: unable to open archive
Invalid argument supplied for foreach()vendor/composer/installed.json 被截断)

遇到这些,别硬等重试,按顺序执行:

  • 删掉 vendor/ 目录(rm -rf vendorrmdir /s vendor
  • 删掉 vendor/composer/installed.json(如果 vendor/ 已删,这步自动生效)
  • 清空 Composer 全局缓存:composer clear-cache(避免复用损坏的 zip 缓存)
  • 再运行 composer install

国内用户优先配镜像源,比重试更治本

下载中断八成是因为连不上 packagist.org。换国内镜像不是“锦上添花”,而是解决根本阻塞点:

  • 阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  • 腾讯云镜像:composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/

注意:-g 是全局配置;若项目级配置,去掉 -g 并在项目根目录下运行;切换后无需重启终端,下次 install 就生效。

临时网络差?加 –no-plugins 和 –prefer-dist 更稳

插件(如 hirak/prestissimo)在旧版 Composer 中可能加剧并发下载失败;--prefer-dist 强制走压缩包而非 git clone,体积小、校验快、失败率低:

composer install --no-plugins --prefer-dist
composer update --no-plugins --prefer-dist

如果你没装自定义插件,--no-plugins 几乎无副作用;--prefer-dist 在有 dist 包时默认启用,但显式声明能绕过某些仓库的 source fallback 逻辑,避免卡在 git fetch。

真正麻烦的是 vendor 目录权限混乱、磁盘满、或 Composer 版本太老(2.2 且未打补丁)。这些不会靠重试解决,得先看 composer diagnose 输出。

text=ZqhQzanResources