Composer update 卡在 Resolving dependencies 与镜像无关,是本地环境问题:PHP 内存不足、Xdebug 开启、config.platform.php 版本不匹配、composer.lock 含下线包等;镜像仅加速 Downloading 阶段。

Composer update 卡在 Resolving dependencies 阶段,和镜像无关;卡在 Downloading 才需要换源——但换错、没清缓存、被项目配置覆盖,都会让镜像形同虚设。
为什么 composer update 还是慢?先分清卡在哪一步
镜像只加速下载(Downloading),不加速依赖解析(Resolving dependencies)。如果你看到命令长时间停在“Resolving dependencies”,说明问题出在本地环境,不是源没换对:
-
PHP内存不足:默认128M不够,临时加COMPOSER_MEMORY_LIMIT=-1再试 -
Xdebug开着:会让解析慢 5–10 倍,用php -d xdebug.mode=off $(which composer) update临时禁用 -
config.platform.php和实际 PHP 版本不匹配:比如写"php": "7.4"却在PHP 8.2上跑,触发降级查找逻辑 -
composer.lock里有已下线包:删掉vendor/和composer.lock,再跑composer install --no-cache
composer config -g repo.packagist 为什么总不生效
这条命令静默失败率极高,三个硬性条件缺一不可:
- 键名必须是
repo.packagist(不是repos.packagist、repositories或packagist.org) - 命令末尾必须带
composer这个type值(省略会导致 fallback 到https://packagist.org) - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,少斜杠会拼接出错直接404
验证是否生效,只看这一条命令输出:composer config -g repo.packagist。输出为空、null、或仍含 packagist.org,就说明没写对。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
项目级镜像比全局更可靠,尤其团队协作时
只要项目 composer.json 里有 "repositories" 字段(哪怕只是空数组 {}),全局镜像就会被跳过。项目级配置才是可控方案:
- 进项目根目录,运行:
composer config repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/(不加-g) - 它会自动向
composer.json的repositories数组追加 packagist 条目,不覆盖已有私有源 - 改完必须执行:
composer update --lock,否则composer.lock仍记录旧源地址 - 如果项目已有
repositories且含自定义源,别手动编辑 JSON —— 容易格式错误,坚持用命令追加
换源后仍请求 packagist.org?检查真实请求路径
光看 composer config 输出不够,要亲眼看到请求发到了镜像域名:
- 删掉
vendor/和composer.lock - 运行:
composer install -vvv 2>&1 | grep "Downloading" - 确认日志里出现的是
mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn,而不是packagist.org
如果还是 packagist.org,大概率是项目 composer.json 里显式写了 "packagist.org": false 但没配镜像,或者用了废弃插件(如 fxp/composer-asset-plugin)绕过了 Composer 镜像机制。

















