项目级配置需先进入含composer.json的根目录再执行composer config,否则会写错位置或报错;repositories必须为对象而非数组;packagist.org须显式设为false;换源后必须删除vendor和composer.lock并重新install才生效。

项目级配置必须进根目录再执行 composer config
不进含 composer.json 的项目根目录就运行命令,composer config repo.packagist 会写错位置——可能新建一个空的 composer.json 在你家目录,或者直接报错 Key "repo.packagist" does not exist。它只作用于当前工作目录下的 composer.json,不是全局修改。
正确做法是:
– 先 cd /path/to/your/project
– 再执行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会自动在 composer.json 顶层添加或更新 "repositories" 字段,且只影响这个项目。
repositories 字段必须是对象,不能是数组
如果项目原有 "repositories": [](空数组),composer config 命令会失败,提示无法写入。它只支持向对象({})里合并键值,不支持向数组追加元素。
手动修复步骤:
– 打开 composer.json
– 把 "repositories": [] 改成 "repositories": {}
– 再运行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/
– 最终结构应为:
"repositories": {
"packagist": {
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
},
"packagist.org": false
}
packagist.org 必须显式设为 false
只配镜像 URL 不够,Composer 默认仍把 packagist.org 当作兜底源。没禁用它,就会先连官方源、超时后再 fallback,表现为卡在 Loading composer repositories 或报 file could not be downloaded。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
关键点:
– "packagist.org": false 必须和 "packagist" 同级,都在 "repositories" 对象内
– 不能写成 "packagist.org": true,那等于没关
– 不能漏掉,也不能写错层级(比如塞进 "packagist" 对象里)
换源后必须删 vendor 和 composer.lock 才生效
composer.lock 里存的是每个包的原始 dist URL 和 hash,比如 "url": "https://api.github.com/..."。哪怕镜像已写进 composer.json,composer install 仍会优先尝试 lock 文件里的旧地址。
所以必须:
– rm -rf vendor composer.lock
– 再运行 composer install(不是 update)
– 它会重新解析 composer.json + 当前镜像配置,生成新 lock,并从镜像源下载所有包
验证是否真走镜像:
– 加 -vvv 运行:composer install -vvv 2>&1 | grep -i 'mirrors\.aliyun'
– 看日志里是否出现镜像域名的请求,而不是 packagist.org 或 api.github.com
最常被跳过的一步是删 composer.lock —— 很多人以为改完 composer.json 就立刻生效,结果等了两分钟发现还是慢,其实只是在重试旧地址。










