先运行composer install --dry-run:若大量显示skipped可直接重试;若出现installing开头、报错或进度卡死,则必须按序清理缓存、vendor/和composer.lock后,再加--prefer-dist --no-scripts --no-plugins --retries=5等参数重试。

直接重试 composer install 大概率失败——它不跳过损坏的缓存、不校验 ZIP 完整性、不修复截断的 installed.json,卡住后只会原地循环报错。
怎么判断要不要清理再重试?
运行 composer install --dry-run 看输出:
- 如果大量出现
Skipped(比如Skipped installing vendor/package (already installed)),说明vendor/状态基本可信,可直接重试 - 如果只看到
Installing开头的行,或直接报错(如Invalid argument supplied for foreach()、Failed to extract),必须清理 - 进度条卡在同一个百分比超 2 分钟,且
-vvv显示刚下载完就崩,说明状态已污染,硬重试无意义
清理什么?顺序不能错
Composer 没有断点续传,中断后残留文件不可信。必须按顺序执行:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先清缓存:
composer clear-cache(重点清掉~/.composer/cache/files/下可能损坏的 ZIP) - 再删项目级产物:
rm -rf vendor/ composer.lock(Linux/macOS)或rd /s /q vendor && del composer.lock(Windows) - 别漏权限问题:运行
ls -ld vendor/ $(composer config --global home),若 owner 是root,说明被sudo污染过,得用sudo chown -R $USER:$USER vendor/修复
重试时该加哪些参数?
光清完就跑 composer install 还是容易再挂。关键参数要配齐:
-
--prefer-dist:跳过 Git 克隆,只下 ZIP,避免git clone卡死 -
--no-scripts --no-plugins:绕过 post-install-cmd 等钩子,防止php artisan key:generate类阻塞操作干扰 -
--retries=5:仅 Composer 2.2+ 生效,且只对 dist 下载阶段起作用(Git 克隆完全不走这个逻辑) - 必须同步调两个超时:
composer config -g http-timeout 600(单次 HTTP 请求)和composer config -g process-timeout 1800(整个命令生命周期)
镜像源配置是否真生效?别被 config 命令骗了
composer config -g repo.packagist 输出正常 ≠ 实际请求走的是镜像。验证方法只有两个:
- 运行
composer install -vvv 2>&1 | grep "Downloading",看第一行 URL 是不是你配的镜像地址(比如https://mirrors.aliyun.com/composer/) - 手动
curl -I https://mirrors.aliyun.com/composer/,必须返回HTTP/2 200;少末尾/、写成http://或用了已停服源(如phpcomposer.com),都会静默回退到packagist.org - 项目级
composer.json里若有"repositories"字段,会彻底屏蔽全局镜像配置——检查用composer config repositories,输出为空才安全
最常被忽略的点是:缓存清理和镜像验证必须做在重试前,而不是边重试边调参。一旦 vendor/ 或 ~/.composer/cache 出现损坏,后续所有重试都只是在复现失败路径。










