配对、配全、配准三者缺一镜像静默失效;composer config -g repo.packagist 命令需严格满足键名、type 参数及https末尾斜杠格式,否则 fallback 官方源;验证须输出完整 json;-vvv 日志仍见 packagist.org 多因缓存或项目级配置覆盖;resolving dependencies 卡顿与镜像无关,属本地依赖求解问题。

配对、配全、配准,三者缺一,镜像就静默失效——不报错,也不加速。
composer config -g repo.packagist 命令为什么总不生效
90% 的“换源后 update 还是慢”,其实是这条命令根本没写进去。Composer 对键名、参数、URL 格式极其敏感:
-
repo.packagist不能写成repos.packagist(多一个 s 就被完全忽略) - 必须带
composer这个 type 参数:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/✅;漏掉composer就 fallback 到官方源 ❌ - URL 必须是 HTTPS + 末尾带斜杠:
https://mirrors.aliyun.com/composer/✅;https://mirrors.aliyun.com/composer❌(少斜杠会 404,然后静默退回到 packagist.org) - 验证是否成功:运行
composer config -g repo.packagist,输出必须是类似{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}的完整 JSON;空、null或仍是https://packagist.org都说明没生效
为什么 -vvv 日志里还是出现 packagist.org
镜像只改下载地址,不改请求逻辑。日志里还看到 packagist.org,基本可以断定是缓存或配置覆盖在捣鬼:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
composer clear-cache—— 缓存里存着旧的packages.json元数据,Composer 会优先读它,哪怕你刚改了镜像,也会继续往旧源发请求,直到超时才 fallback - 检查项目级配置是否覆盖全局:
composer config -l | grep repositories,如果输出带项目路径,说明composer.json里写了"repositories"字段 - 临时绕过所有自定义源验证:
composer install --no-plugins --repository=https://packagist.org -vvv,如果这时反而快了,就是项目配置把全局镜像顶掉了 - 真正生效的日志特征是出现
Reading packages.json from cache at /https---mirrors-aliyun-com-composer/
composer update 卡在 Resolving dependencies 怎么办
这个阶段完全不走网络,和镜像无关。Composer 正在本地暴力穷举满足所有约束的版本组合,CPU 占满也卡:
- 宽泛约束是元凶:
"monolog/monolog": "*"、"php": ">=7.4"、"minimum-stability": "dev"会让求解器查几百个包的兼容性元数据 - 确保
composer.lock存在并提交到 Git;没有 lock 文件,每次install都强制重算整个依赖图 - 收紧版本范围:
"monolog/monolog": "^2.9.0"比"*"快几个数量级 - 开发环境可临时禁用 classmap 优化:
composer config authorative false(注意拼写是authorative,不是authoritative)
项目级镜像配置比全局更可靠
团队协作或 CI 场景下,项目级配置能避免用户、环境、权限差异带来的干扰:
- 进项目根目录,运行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g) - 该命令会向
composer.json的"repositories"数组追加项,不覆盖已有私有源 - 提交
composer.json到 Git,其他成员拉取即生效,无需各自配置 - 删掉它只需:
composer config --unset repos.packagist(注意这里 key 是repos.packagist,因为写入的是数组字段) - 若已有
"repositories": {},别手写 JSON —— 容易格式错误,务必用config命令操作
最常被忽略的点是:镜像只加速 Downloading,不碰 Resolving dependencies;而后者卡住时,你盯着日志里的域名看再久也没用。










