必须改用repositories.packagist.org键名并传入完整JSON,因Composer 2.2+静默忽略repo.packagist;需清理旧键(如repos.packagist)、确保URL结尾带/、执行composer clear-cache,且项目级repositories字段会完全覆盖全局配置。

composer config -g repo.packagist 命令失效了怎么办
Composer 2.x 默认仍兼容 repo.packagist 键名,但部分 2.2+ 版本(尤其是带自定义 metadata 的包解析场景)会静默忽略它,导致配置看似成功、实际仍走 packagist.org。这不是 bug,是内部匹配逻辑收紧的结果。
真正推荐的写法是用 repositories.packagist.org 键名,它被明确设计为覆盖所有 packagist.org 子域名请求,且在 Composer 2.2+ 中优先级更高、更稳定:
composer config -g repositories.packagist.org '{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}'- 必须带完整 JSON 字符串结构,不能只写 URL
- 单引号包裹整个 JSON(Linux/macOS),Windows PowerShell 需改用双引号并转义内部引号
- 执行后立刻生效,无需重启终端(但 Windows CMD 用户建议新开窗口验证)
为什么 composer config -g repo.packagist 返回空或旧地址
大概率是旧配置残留干扰。Composer 会同时读取多个键名,如果之前设过 repos.packagist(多一个 s)、mirror(根本不存在的字段)或 packagist(1.x 旧写法),它们可能和新配置共存,造成覆盖混乱。
清理干净再重配最稳妥:
- 先清旧字段:
composer config -g --unset repos.packagist(注意是repos,不是repo) - 再删掉疑似无效字段:
composer config -g --unset mirror、composer config -g --unset packagist - 最后用
repositories.packagist.org重新写入 - 验证:
composer config -g repositories.packagist.org,输出应为完整 JSON 对象
换源后 composer install 还卡在 Loading composer repositories
这基本说明镜像根本没生效——不是网络慢,是请求压根没发到镜像站。常见原因有三个:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
-g参数漏了:命令变成项目级配置,只改当前目录下的composer.json,换目录就失效 - URL 少了末尾斜杠:
https://mirrors.aliyun.com/composer❌ → 会拼出/composerpackages.json路径,直接 404 - 没清缓存:
composer clear-cache必须执行,否则 Composer 仍从本地旧元数据加载索引
验证是否真在用镜像:运行 composer show monolog/monolog -vvv 2>&1 | grep "Downloading",看日志里出现的是 mirrors.aliyun.com 还是 packagist.org。
项目级配置优先级高于全局,这点容易被忽略
哪怕你全局配得再准,只要项目根目录的 composer.json 里有 "repositories" 字段(哪怕只有一行空对象),Composer 就会完全屏蔽全局镜像,强制走项目定义的源。
检查方式很简单:composer config --list | grep repositories。如果有输出,说明项目自己接管了仓库配置。
这时候要么删掉项目里的 repositories,要么把镜像地址写进项目配置里(适合 CI 或团队协作场景),别指望全局设置能“穿透”进来。

















