答案是必须清除packages.json元数据缓存,因Composer复用旧快照导致未请求新镜像;需先验证config -g repo.packagist输出完整JSON且URL带斜杠,再执行composer update --refresh(≥2.5)或手动删除对应repo子目录(≤2.4),最后用composer show -vvv grep Downloading确认请求命中镜像域名。

Composer仓库配置改完后仍卡在Loading composer repositories,说明元数据缓存没刷新,packages.json快照还在复用旧地址,必须清除特定缓存才能让新镜像URL立刻生效。
先确认配置已写入且格式正确
运行composer config -g repo.packagist,输出必须是完整JSON或纯URL字符串,例如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。如果返回空、null或仍是https://packagist.org,说明配置根本没存进去。
键名必须是repo.packagist(单数),不能是repos.packagist或repositories;type值必须显式写composer;URL末尾【必须带/】,否则拼出的路径为/composerpackages.json直接404。
Windows用户改完要重开终端,否则环境变量未刷新,composer config -g repo.packagist查不到新值。
清除元数据缓存的两种方法
方法一:用--refresh(Composer ≥2.5)
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
执行composer update --refresh,它只丢弃packages.json和provider-*.json,不碰已下载的ZIP包,快且安全。这一步操作起来很简单,直接敲命令回车就行。
方法二:手动删除对应repo子目录(Composer ≤2.4)
① 查缓存根目录:composer config --global cache-dir
② 进入repo/子目录,找匹配镜像URL的文件夹,如https---mirrors-aliyun-com-composer
③ 执行:rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer
【别删整个repo/目录】——其他镜像或私有源的缓存也会跟着丢。
验证是否真走新镜像
运行composer show monolog/monolog -vvv 2>&1 | grep "Downloading",日志里必须出现mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn等镜像域名。如果看到packagist.org或github.com,说明要么配置没生效,要么某个包硬编码了原始dist URL。
轻量验证也可用:composer diagnose -v | grep "Checking https",末尾应显示https://mirrors.aliyun.com/composer/packages.json。

















