确认镜像是否真生效,必须执行composer config -g repo.packagist,输出完整json对象如{"type":"composer","url":"https://mirrors.aliyun.com/composer/"},且需运行composer install -vvv确认首行日志为downloading对应镜像地址,同时务必执行composer clear-cache清除旧缓存。

确认镜像是否真生效,别只看命令有没有执行
执行 composer config -g repo.packagist 后,输出必须是完整 JSON 对象(含 "type": "composer" 和带末尾 / 的 URL),例如:{"type":"composer","url":"https://mirrors.aliyun.com/composer/"}。返回 null、空值、https://packagist.org 或报错 Key "repo.packagist" does not exist,说明配置根本没写进去。
再跑一次 composer install -vvv,盯住第一行日志:必须出现类似 Downloading https://mirrors.aliyun.com/composer/packages.json 才算走镜像;如果还看到 packagist.org/packages.json,就是 fallback 了,后续所有操作都白搭。
常见静默失败点:
-
repo.packagist写成repos.packagist(多一个s) - URL 少了末尾
/,变成https://mirrors.aliyun.com/composerpackages.json导致 404 - 漏掉中间的
composer类型参数,命令变成composer config -g repo.packagist https://...
清缓存不是可选项,是换源必做步骤
缓存里存着旧的 packages.json 和元数据,Composer 会优先读它,哪怕镜像已改,仍试图从 packagist.org 拉校验信息——结果就是卡在 DNS 解析或 TLS 握手,看起来像“不动”。
必须立刻执行:
-
composer clear-cache(全局缓存) - 删掉项目里的
vendor/和composer.lock(尤其create-project卡住时)
验证缓存路径:composer config cache-dir,手动进目录看是否还有 packagist.org 相关文件残留。
下载卡在 git clone 或 github.com,镜像源不管用
镜像源只加速 dist 包(ZIP),对 "type": "vcs" 的包(如 GitHub dev 分支)无效。错误现象是:Cloning into 'xxx' fatal: unable to access 'https://github.com/xxx': Failed to connect to github.com port 443。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
优先尝试 SSH 方式:
- 本地已配 GitHub SSH key,就把
composer.json里https://github.com/xxx改成git@github.com:xxx - 或全局改协议:
git config --global url."git@github.com:".insteadOf "https://github.com/"
不推荐 git config --global http.sslverify false,新版 Git 默认校验,关了有安全风险。
并发和超时设置要配对,单开没用
parallel-downloads 只对 composer install 下载 ZIP 有效,对 update 阶段无提速作用。设太低(如默认 3)等于没开,设太高(>20)可能触发临时文件竞争错误。
推荐组合:
composer config -g parallel-downloads 10composer config -g http.timeout 300composer config -g process-timeout 3600
注意:process-timeout 是总流程超时,http.timeout 是单次 HTTP 请求超时,两者都要调大;且必须先确认 composer --version 是 2.2+,1.x 用户得先 composer self-update。
最常被忽略的是缓存没清,以及日志里实际请求地址仍是 packagist.org —— 这两个点没确认,其他所有操作都是徒劳。










