homebrew安装的composer不管理包源,换国内源需用composer config -g repositories.packagist.org配置json格式镜像地址,并执行composer clear-cache清缓存,再运行composer update --lock刷新lock文件中的旧url。

Homebrew 安装的 composer 本身只是个可执行文件,它不管理包源;改国内源是 Composer 自己的事,和 brew 无关。直接对 composer 执行换源命令即可,但必须注意键名、类型、斜杠、缓存四要素,漏一个就白配。
composer config -g repositories.packagist.org 是唯一推荐写法
Composer 2.2+ 已弃用 repo.packagist 这种旧键名,很多用户配完 composer config -g repo.packagist https://mirrors.aliyun.com/composer/ 看似成功,实际无效——因为新版会静默忽略该配置项。
- 正确命令(阿里云):
composer config -g repositories.packagist.org '{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}' - 正确命令(腾讯云,带 fallback):
composer config -g repositories.packagist.org '{"type": "composer", "url": "https://mirrors.cloud.tencent.com/composer/"}' - 验证是否写入:
composer config -g repositories.packagist.org,输出应为完整 JSON 对象,不是空或报错 - 如果输出是
null或报Key "repositories.packagist.org" does not exist,说明没生效,重跑上一条命令
必须执行 composer clear-cache 否则镜像不生效
Composer 会缓存元数据(比如包列表、版本映射),哪怕你改了源,只要缓存还在,它仍从旧源加载信息,表现为 Loading composer repositories 卡住或下载地址仍是 packagist.org。
- 清缓存命令:
composer clear-cache - 执行后终端会显示清理了多少 MB,以及
Cache directory: /Users/xxx/.composer/cache - 不清理缓存,换源=白换;尤其之前用过官方源,缓存残留极多
vendor 安装仍慢?可能是 lock 文件里还记着旧 URL
即使源已切好、缓存已清,composer install 仍可能卡在 installing monolog/monolog (v2.10.0) ——这不是镜像问题,而是 composer.lock 里记录的是原始 dist URL(https://api.github.com/... 或 https://packagist.org/...),Composer 会优先尝试这个地址。
- 强制刷新 lock 文件中的下载链接:
composer update --lock - 该命令不升级包版本,只重写 lock 文件里的 dist URLs 和 hashes,使其指向新镜像源
- 如果是 CI 环境或团队项目,建议把这步加进构建脚本,避免本地缓存掩盖问题
最容易被忽略的是:换源后没清缓存,或者用了旧键名却误以为配置成功。这两点加起来占失效案例的 90%。别信“执行了命令就完了”,一定要用 composer config -g repositories.packagist.org 和 composer clear-cache 交叉验证。











