composer全局镜像配置需满足三条件:键名repo.packagist(单数小写)、type值为composer、url以https://开头且结尾带/;项目级repositories字段存在会覆盖全局配置;验证须用curl测试镜像地址返回200。

composer config -g repo.packagist 输出为空或不是 JSON
这说明配置压根没写进去,不是“慢”或“延迟”,是命令格式错一个字符就被 Composer 2.x 静默丢弃。必须同时满足三个条件:repo.packagist(单数、全小写、不能是 repos.packagist)、中间参数必须是 composer(这是 type 值,不是注释)、URL 必须以 https:// 开头且末尾带 /(比如 https://mirrors.aliyun.com/composer/)。漏掉 -g 参数则只改当前项目,换目录就失效。
composer install -vvv 日志里还在请求 packagist.org
这不是镜像没同步,是全局配置被更高优先级设置覆盖了。Composer 的源加载顺序固定:项目级 composer.json 中的 repositories 字段 > 全局 repo.packagist > 默认源。只要项目里有 "repositories" 字段(哪怕只是空数组 [] 或空对象 {}),全局镜像就彻底失效,且不提示。排查方法:composer config repositories 看输出;grep -A5 '"repositories"' composer.json 检查是否存在;临时清除用 composer config --unset repositories(注意无 -g)。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
换源后仍卡在 “Loading composer repositories” 或 “Resolving dependencies”
前者大概率是缓存残留——Composer 会拿着旧元数据继续请求 packagist.org,必须执行 composer clear-cache;后者和镜像无关,是依赖解析问题:"php": "^7.4 || ^8.0" 这类宽泛约束会让 Composer 尝试大量版本;require-dev 里塞太多工具链(如 phpunit、phpstan)也会爆炸解空间;老项目用了已废弃的 fxp/composer-asset-plugin,它绕过镜像直连 Bower/NPM,换任何国内源都无效。
curl 测试镜像根路径返回 404 或超时
别信 composer diagnose 显示 OK,它不发网络请求。真实验证只能靠 curl -I https://mirrors.aliyun.com/composer/packages.json。返回 HTTP/2 200 才算可用;返回 404 多半是 URL 少了末尾 / 或镜像路径写错(比如华为云正确地址是 https://mirrors.huaweicloud.com/repository/php/,不是 /composer/);超时或 Could not resolve host 是 DNS 或本地网络问题,和 Composer 配置无关。CI/CD 环境中还要注意用户权限——你用 root 配的镜像,但实际运行的是 www 用户,得用 sudo -u www composer config -g 单独配。










