Composer 配置国内镜像必须严格满足三条件:命令为 repo.packagist(单数)、第二参数显式写 composer、URL 以 https:// 开头且末尾带 /;需在项目根目录执行,配后删 vendor 和 composer.lock 再 install 才生效。

composer config repo.packagist 命令必须严格满足三个条件
命令写错就等于没配,Composer 会静默回退到 packagist.org。不是报错提醒你,而是假装成功,然后继续慢速下载。
必须同时满足:
-
repo.packagist(注意是单数repo,不是repos) - 第二个参数显式写
composer(这是 type 声明,不能省) - URL 以
https://开头,且末尾带/(例如https://mirrors.aliyun.com/composer/)
常见失败写法:composer config repos.packagist composer https://mirrors.aliyun.com/composer/(多一个 s)、composer config repo.packagist https://mirrors.aliyun.com/composer/(缺 composer 类型)、composer config repo.packagist composer https://mirrors.aliyun.com/composer(少末尾 /)。
项目根目录下执行,否则配置写进错误位置
这条命令只对当前目录下的 composer.json 生效。不 cd 进项目根目录就运行,Composer 会找它能碰到的第一个 composer.json——可能是你家目录下空的、甚至临时生成的无效文件。
正确流程只有一步:cd /path/to/your/project && composer config repo.packagist composer https://mirrors.aliyun.com/composer/。
如果项目里原本没有 repositories 字段,命令会自动加一个对象:"repositories": {"packagist": {...}};但如果已有 "repositories": [](数组格式),命令直接报错,得先手动改成 "repositories": {} 再重试。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
配完必须删 vendor 和 composer.lock 才真正生效
很多人配完立刻 composer install,发现还是卡在 Loading composer repositories 或报 file could not be downloaded。这是因为 composer.lock 里存的是旧 dist URL 和 hash,Composer 优先读 lock 文件,根本不会去查你刚配的镜像。
必须做三件事:
- 删除整个
vendor/目录 - 删除
composer.lock - 运行
composer install(不是update)
install 会重新解析 composer.json + 当前镜像配置,生成新 lock,并从镜像源拉包。跳过任一环节,镜像就只是个摆设。
验证是否走镜像:别信命令输出,要看实际网络请求
执行 composer config repo.packagist 返回 URL 只说明字段写进去了,不代表请求发出去了。真正生效要看日志里是不是在连镜像域名。
加详细日志跑一次:composer install -vvv 2>&1 | grep -i 'mirrors\.aliyun\|tuna\.tsinghua'。如果看到类似 Downloading https://mirrors.aliyun.com/composer/packages.json 的输出,才算成功。
顺手检查下 composer.json 里 repositories 的结构:必须是对象({}),且含 "packagist.org": false 同级字段——漏掉这个,Composer 仍会把官方源当兜底,部分包可能绕过镜像。

















