必须执行 composer config -g repo.packagist https://packagist.org 并立即运行 composer clear-cache 才能切回官方源;仅删配置或不验证实际请求会导致失败,因 composer 2.0+ 只认单数 repo.packagist,且项目级配置、环境变量、dns劫持均可能干扰。

直接执行 composer config -g repo.packagist composer https://packagist.org 并立刻运行 composer clear-cache,才能真正切回官方源。只删配置、不清理缓存,或只看 config 输出不验证实际请求,90% 的人会失败。
为什么 composer config -g --unset repos.packagist 常常无效?
字段名写错是最大坑点:repos.packagist(复数)是旧文档遗留写法,Composer 2.0+ 实际只认 repo.packagist(单数)。删错字段等于没删;更糟的是,--unset 不会自动补回默认值,反而可能触发 fallback 异常(如卡住、Could not parse version constraint)。新版推荐绕过删除,直接覆盖为官方地址。
-
composer config -g --unset repo.packagist—— 正确字段名(单数),但删完仍需清缓存 -
composer config -g --unset repos.packagist—— 多了个s,命令不报错,但什么都没删掉 - 删完不执行
composer clear-cache,缓存里还存着镜像的packages.json快照,composer update依然拉不到新包
项目级配置比全局配置优先级更高
即使全局已设对,只要当前项目 composer.json 里有 repositories 字段,Composer 就完全无视全局设置。常见干扰包括:"repositories": {"packagist.org": false}(关掉默认源却没给替代)、空数组 "repositories": [](也会屏蔽全局)、或残留的阿里云/腾讯云镜像 URL。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 检查项目是否覆盖:运行
composer config repo.packagist(不加-g),输出不是https://packagist.org就说明被盖掉了 - 快速清理:进项目根目录执行
composer config --unset repositories,或手动删掉composer.json中整个"repositories"块 - 删完必须再跑一次
composer clear-cache,否则旧缓存仍生效
环境变量和网络层劫持才是隐藏真凶
执行完所有配置清理,composer install -vvv 日志里仍出现 mirrors.aliyun.com?那大概率不是配置问题,而是环境变量或网络层干扰。
- 检查变量:
echo $COMPOSER_REPO_PACKAGIST(Linux/macOS)或echo %COMPOSER_REPO_PACKAGIST%(Windows),有值就用unset COMPOSER_REPO_PACKAGIST或set COMPOSER_REPO_PACKAGIST=清掉 - Composer ≥2.2 启用了自动镜像重定向:某些国内 ISP 或 DNS 会劫持
packagist.org的 DNS 或 HTTP 请求,返回阿里云/腾讯云响应——这不是 Composer 配置能控制的 - 最可靠验证方式:
composer require monolog/monolog --no-install -vvv 2>&1 | grep -i 'GET https'(Linux/macOS),观察真实发起的 URL 是否为https://repo.packagist.org
真正决定结果的从来不是某一条命令,而是三层配置(全局 > 项目 > 环境变量)叠加 + 缓存是否清空 + 实际 HTTP 请求是否走对域名。漏掉任意一环,都会让你以为“已经切回官方源”,实则还在镜像上兜圈子。










