Composer 2.2+ 中 repo.packagist 已被弃用,必须改用 repositories.packagist.org;需加 -g 全局生效、JSON 用双引号包裹、URL 末尾带 /、type 必须为 composer,否则静默失效。

composer config -g repo.packagist 命令为什么总不生效?
不是网络问题,是命令写错了——repo.packagist 这个键名在 Composer 2.2+ 中已被静默忽略,必须改用 repositories.packagist.org;漏掉 -g 参数只改当前项目;URL 少了末尾 / 会导致请求路径拼成 /composerpackages.json 直接 404;没写 composer 作为 type 值,就会 fallback 回官方源。
最容易踩的坑是:命令执行没报错,但 composer install 依然卡在 Loading composer repositories。这是因为 Composer 对配置项识别极严格,错一点就完全跳过,不提示、不警告。
composer config -g repositories.packagist.org '{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}'- 必须带
-g,必须用双引号包裹 JSON,URL 末尾必须有/ - 执行后立刻验证:
composer config -g repositories.packagist.org,输出应为完整 JSON,不是空或报错
换源后 vendor 还是慢?别只盯着镜像地址
换了源却没提速,大概率是因为 composer.lock 里还存着 packagist.org 的 dist URL。Composer 安装时优先读 lock 文件里的下载地址,而不是镜像配置。
解决方法很简单:删掉 vendor/ 和 composer.lock,再跑一次 composer install。或者更轻量地执行:composer update --lock,它会重新解析依赖并刷新 lock 文件中的 URL。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 如果项目用了
fxp/composer-asset-plugin(比如老版 Yii2),它不走 Composer 镜像配置,会额外请求 Bower/NPM 源——这些源没国内镜像,得升级到yiisoft/yii22.0.14+ 或迁移到 npm/yarn - 确认是否真走镜像:运行
composer install -vvv,看终端里下载包的域名是不是mirrors.aliyun.com或mirrors.cloud.tencent.com
全局配置 vs 项目级配置,选哪个?
全局配置看着省事,但 CI 流水线、多项目混用、团队协作时容易出问题——不同人本地镜像不一致,composer.lock hash 就会变,导致部署失败。
项目级配置才是稳定做法:进项目根目录,运行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/(注意:不加 -g)。它会自动往 composer.json 的 "repositories" 字段里写入 "packagist" 子项,且不覆盖已有私有源。
- 前提是原
"repositories"是对象(如{"packagist": {}}),不是数组;如果是数组,命令会报错,需先手动转格式 - 改完记得提交
composer.json到 Git,新人拉代码后行为完全一致 - CI 环境中建议禁用全局镜像,只认项目级配置,避免环境差异
验证和清理缓存不能少
执行完配置命令,一定要立刻跑 composer clear-cache。否则元数据仍从旧源加载,新镜像形同虚设。
最直接的验证方式不是看命令输出,而是删掉 vendor/ 和 composer.lock,再执行 composer install,观察终端里每条下载链接的域名。
- 清华旧镜像
packagist.phpcomposer.com已下线,继续用会报Could not resolve host: packagist.phpcomposer.com - 中科大镜像现为
https://packagist.mirrors.ustc.edu.cn/,阿里云和腾讯云目前最稳 - 不要用网上那些 sed 替换
~/.composer/config.json的脚本——macOS 和 Linux 的sed -i语法不兼容,JSON 格式极易被破坏

















