Composer 配置镜像必须同时满足三个条件:加 -g、键名为 repo.packagist、type 值为 composer 且 URL 以 HTTPS 和结尾斜杠为准;还需清缓存并检查项目级 repositories 是否覆盖全局配置。

composer config -g repo.packagist 命令必须写对
镜像没生效,90% 是因为这条命令写错了——它不报错,但也不起作用,Composer 仍直连 packagist.org。必须同时满足三个条件:
• 加 -g(否则只改当前项目)
• 键名是 repo.packagist(不是 repos.packagist 或 packagist.org)
• 中间参数 composer 是 type 值,不是可选注释
• URL 必须是 HTTPS 且末尾带 /(少斜杠会拼出 /composerpackages.json,返回 404)
正确写法:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效:composer config -g repo.packagist 输出必须是完整 JSON,例如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};如果返回空、null 或报 Key does not exist,说明根本没写进去。
缓存不清理,换源也白换
Composer 优先读本地缓存里的 packages.json 元数据,哪怕镜像已配对,它仍会继续请求旧地址。
必须执行:composer clear-cache(注意不是 cache-clear,后者已废弃)
再手动删掉元数据缓存目录:rm -rf ~/.composer/cache/repo/https---mirrors-aliyun-com-composer(路径按你实际镜像 URL 转义,比如腾讯镜像就是 https---mirrors-tencentyun-com-composer)
不删缓存,install 日志里看到的仍是 packagist.org 域名,根本没走镜像。
项目级 repositories 会屏蔽全局配置
只要 composer.json 里有 repositories 字段(哪怕只是 {"packagist.org": false}),全局镜像就完全失效。
检查方法:grep -A5 repositories composer.json
临时解决:composer config --unset repositories(不加 -g)
长期方案:进项目根目录,运行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉 -g),它会自动合并进 composer.json 的 repositories 对象中——前提是原字段是对象,不是数组。
如果是数组,手动确保第一个元素是:{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
新包查不到?先确认是不是镜像同步延迟
国内镜像(阿里云、腾讯云等)同步有 5–30 分钟延迟,刚发布的包或 dev-main 分支不会立刻出现。
验证方式:curl -I https://mirrors.aliyun.com/composer/p2/vendor/name.json(把 vendor/name 换成你要查的包名)
返回 200 表示镜像已有;返回 404 就坐实是同步未完成。
别急着换源——先切回官方源验证:composer config -g repo.packagist composer https://repo.packagist.org,再试 require;如果成功,问题一定在镜像环节,而不是包本身不存在。
真正容易被忽略的是:CI 环境(如 GitHub Actions)读不到你本地的 ~/.composer/config.json,全局配置在那里无效;而项目级配置又常被 repositories 数组结构破坏,导致镜像静默失效。每次改完都得删 vendor/ 和 composer.lock,再跑 composer install -vvv 看日志里的域名才作数。

















