90%不是网络问题,而是镜像配置错误或失效;应执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/正确配置全局镜像,并确认项目级repositories未覆盖,再清缓存。

国内用 Composer 装包卡在 Resolving dependencies、Loading composer repositories 或下载慢到超时,90% 不是网络问题,而是镜像源配置错误或已失效——换一个当前实测可用的镜像,多数情况立刻恢复。
确认当前生效的镜像源是哪一条
执行 composer config -g repo.packagist,输出应为完整 JSON 对象,例如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。如果返回空、null 或报错,说明全局镜像未生效;如果返回的是 https://packagist.org 或已停用地址(如 https://packagist.laravel-china.org),就该立刻切换。
注意:composer config -g repos.packagist(多一个 s)是无效命令,不会报错但也不写入;composer config -gl 会混显全局和项目级配置,容易误判——真正起作用的是项目根目录 composer.json 中的 repositories 字段,它优先级最高,会完全屏蔽全局设置。
2026 年实测最稳的三个镜像地址及适用场景
以下均为 HTTPS 协议、支持 Composer 2.2+、元数据全量同步且延迟 ≤15 分钟的活跃镜像(截至 2026 年 5 月上旬实测):
-
https://mirrors.aliyun.com/composer/:同步最快,Laravel 11 / PHP 8.4 新包基本当天入库,适合日常开发与 CI 构建 -
https://packagist.mirrors.sjtug.sjtu.edu.cn/:上海交大 SJTUG 镜像,学术机构运维,无商业干扰,适合对稳定性要求高于速度的生产环境 -
https://packagist.mirrors.ustc.edu.cn/:中科大镜像,北方地区和教育网访问延迟低,新发布包响应及时
已明确失效或不建议使用的镜像包括:https://packagist.phpcomposer.com(404)、http:// 开头的任何地址(Composer ≥2.2 默认拒绝)、https://packagist.jp(国内实际更慢)。
全局换源必须写对这三处,否则白配
正确命令是:composer config -g repo.packagist composer 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
关键点:
-
repo.packagist(不是repos.packagist)——少一个s,否则被忽略 -
composer是 type 值,不能省略,否则 fallback 到默认源 - URL 必须以
https://开头、结尾带/,缺斜杠在某些版本下会 404
配完立刻验证:composer config -g repo.packagist 输出应是你刚设的 URL;再执行 composer clear-cache,否则仍可能走旧缓存。
换源后还卡在 Resolving dependencies?那和镜像无关
镜像只加速元数据拉取和包下载,不参与依赖解析逻辑。如果你发现 composer update 卡在 Resolving dependencies 几十秒以上,大概率是本地 composer.json 写法导致:
- PHP 版本约束太宽,比如
"php": "^7.4 || ^8.0 || ^8.1 || ^8.2 || ^8.3",让 Composer 尝试遍历所有兼容组合 -
require-dev里塞了大量未锁定版本的工具链(如"phpunit/phpunit": "^9.0"而非"^9.6") - 存在大量
dev-main或分支别名依赖,触发频繁的 Git 元数据查询
这种情况下,换镜像毫无帮助。可临时加 --no-suggest --ignore-platform-reqs 缩短解析时间,或改用 composer update --lock 跳过重新解析,仅更新 lock 文件。
最容易被忽略的一点:项目级 repositories 配置一旦存在,就会彻底屏蔽全局镜像,哪怕你刚用 -g 换了源也无效;而很多老项目残留着已停用的镜像 URL,删掉它比反复调镜像更有效。

















