composer 2.2+ 已彻底废弃 repo.packagist 键名,执行该命令静默无效;必须改用 repositories.packagist.org.type/url 两步配置或环境变量方式,并清除缓存、删除 composer.lock 和 vendor 后重装。

直接结论:Composer 2.2+ 已彻底废弃 repo.packagist 全局配置键名,执行 composer config -g repo.packagist 不会生效——不是你写错了,是它根本不再读这个字段。
为什么 composer config -g repo.packagist 看似成功却完全无效
新版 Composer(2.0 起)已移除对 repo.packagist 的支持,无论你参数写得多标准,它都静默忽略。这不是 bug,是设计变更。
-
repo.packagist是 Composer 1.x 的遗留键名,官方文档早已标注 deprecated - 执行该命令后
composer config -g repo.packagist返回空、null或旧值,说明配置未被识别 -
composer diagnose中 “Repo packagist.org:” 行仍显示https://packagist.org,即为确证 - 部分用户误以为“加了 -g 就全局生效”,实则只是把配置写进了当前项目
composer.json,换目录即失效
正确设置中文镜像的两种可靠方式
必须绕过已废弃的全局配置路径,改用 Composer 官方支持的机制:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
项目级推荐(最稳):进项目根目录,运行
composer config repositories.packagist.org.type composer和composer config repositories.packagist.org.url https://mirrors.aliyun.com/composer/——注意url末尾必须带/ -
环境变量方式(真正全局):设
COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/,它优先级高于composer.json中的repositories - 若项目已有
"repositories": []数组,先手动改为"repositories": {}再执行composer config命令,否则会失败 - 务必加上
"packagist.org": false(写在composer.json顶层),否则 Composer 仍会 fallback 到官方源
换源后依然卡住或报 404 的关键检查点
镜像地址本身没问题,但 Composer 仍可能走错路,原因往往藏在缓存和锁文件里:
-
composer.lock文件硬编码了旧 provider 地址(如https://packagist.org/p2/monolog/monolog.json),换源后不会自动更新——必须删掉composer.lock和vendor/后重装 - 本地元数据缓存未清:
composer clear-cache必须执行;Windows 用户还需手动删%LOCALAPPDATA%\Composer\cache - 项目
composer.json中存在"repositories": [{"type":"composer","url":"..."}]时,repositories.packagist.org配置会被完全忽略——优先检查grep -A 5 '"repositories"' ./composer.json - 验证是否真走镜像:运行
composer install -vvv 2>&1 | grep "Downloading.*packages.json",第一行域名必须是你配的镜像地址
最容易被忽略的是 composer.lock 里的旧 URL 和 repositories 字段的覆盖行为——它们不随新配置自动刷新,必须主动清理或重写。










