Composer无法一键清除所有镜像,必须分层定位(项目级、全局、系统级)、精准按键名unset(如repo.packagist和repos.packagist)、手动删除composer.json中的repositories字段、单独清理代理及缓存,并验证请求URL是否为https://repo.packagist.org。

不能一键清除所有镜像——Composer 没有“全量清除”命令,必须分层、分键名、分类型手动清理。 直接跑 composer config -g --unset repositories 会报错或无效,因为 repositories 是对象字段,不是可 unset 的顶层键;真正生效的是 repos.packagist 或 repositories.packagist 这类具体键名。
查清镜像配置在哪一层
镜像可能藏在三处:项目级 composer.json、全局 ~/.composer/config.json、甚至系统级(极少)。不先定位,删了也白删。
- 查全局是否设了镜像:
composer config -g repo.packagist和composer config -g repos.packagist都要试——两者都可能存着,且互不覆盖 - 查项目级是否覆盖:
composer config --list(不带-g),看输出里有没有repositories相关行 - 查注册表(仅 Windows):
HKEY_CURRENT_USER\Software\Environment下可能残留http_proxy字符串,和镜像无关但常被误认为“删不干净”
删镜像必须按键名精准 unset
Composer 对键名大小写、单复数、嵌套层级极其敏感。写错一个字符,配置就还在生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 全局镜像最常见两种写法:
repo.packagist(旧版常用)和repos.packagist(Composer 2.0+ 默认),必须两条命令都执行:composer config -g --unset repo.packagist和composer config -g --unset repos.packagist - 项目级镜像通常在
composer.json的"repositories"字段里,不能用config --unset清除,得手动删掉整个"repositories": { ... }块,注意 JSON 逗号语法 - 别碰
repositories这个顶层键本身——composer config -g --unset repositories无效,会提示 “Key does not exist”
代理和镜像必须分开处理
很多人删完镜像发现 still 走阿里云,其实是代理没清。镜像控制元数据源地址,代理控制网络出口,两者完全独立。
- 清代理必须单独执行:
composer config --global --unset http-proxy和composer config --global --unset https-proxy - 临时绕过代理(不改配置):
http_proxy= https_proxy= composer install(Linux/macOS) - Windows 用户还要检查注册表项,
http_proxy可能被环境变量继承,composer config --list看不到但实际生效
删完必须清缓存 + 验证真实请求地址
配置删了 ≠ 请求就切回官方源。Composer 缓存会保留旧的包元数据,fallback 机制也可能悄悄启用镜像——你看到的 install success 很可能是假成功。
- 删完立刻执行:
composer clear-cache,否则缓存里的镜像 URL 还在用 - 验证不能只看命令输出,要盯真实 URL:
composer require monolog/monolog --no-install,确认日志里出现的是https://repo.packagist.org,而不是任何mirrors.xxx - 如果仍走镜像,90% 是项目级
composer.json里还有"repositories",优先级高于全局配置,必须手动删
真正“干净”的状态是:全局配置里没有 repo.* 或 repos.*,项目级 composer.json 没有 repositories 字段,composer clear-cache 已执行,且 composer config --global --list 输出中既无镜像键也无代理键——这时候再跑 composer update,才真正走 https://repo.packagist.org。

















