必须在create-project前配置项目级镜像,否则因脚手架模板禁用packagist.org且未设替代源,导致“loading composer repositories”卡住;应使用--repository-url参数临时指定镜像或手动修正composer.json中repositories为含"packagist"键的对象格式。

create-project 初始化卡在 “Loading composer repositories” 怎么办
这不是网络问题,是脚手架模板自带的 composer.json 里已禁用官方源但没配替代镜像,导致 Composer 根本拉不到包列表。常见于 Laravel、Symfony 等官方模板,它们默认写 {"packagist.org": false} 却没填镜像地址。
- 临时救急:直接加
--repository-url参数,例如composer create-project laravel/laravel myapp --repository-url=https://mirrors.aliyun.com/composer/ - 别依赖全局镜像——项目级
repositories字段会彻底屏蔽它,哪怕你config -g配得再对也没用 - 初始化后立刻检查生成的
composer.json,确认repositories是对象({})而非数组([]),否则后续composer config repo.packagist ...会失败
项目级 repositories 字段怎么写才生效
必须是顶层 repositories 对象,且 "packagist" 键必须显式存在、值为完整镜像配置;同时 "packagist.org": false 要作为同级独立项,不能嵌套。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 正确格式:
"repositories": {"packagist": {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}, "packagist.org": false} - 错误示例:
"repositories": [{"type": "composer", "url": "..."}](数组格式,不识别packagist键) - 错误示例:
"repositories": {"packagist.org": false}(缺镜像源,结果就是“啥都装不了”) - 改完必须删掉
vendor/和composer.lock,再跑composer install——update会复用旧 lock 文件里的 dist URL,照样 404
为什么 composer config repo.packagist ... 报错或没反应
命令本身只对 repositories 是对象({})时有效;如果当前 composer.json 里是空数组([])或根本没这个字段,它会静默失败或写入无效位置。
- 先手动编辑
composer.json,把"repositories": []改成"repositories": {} - 再运行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(注意没-g) - 验证:执行
composer config repo.packagist,输出应为完整 JSON,不是null或空行 - 如果仍报
Key does not exist,说明键名写错了——必须是repo.packagist(单数repo,不是repos)
CI/CD 或宝塔环境下镜像总失效
因为 config -g 只对当前用户生效,而 Jenkins、宝塔后台、Docker 容器往往以 www、jenkins 或其他非登录用户身份运行命令,根本读不到你本地的 ~/.composer/config.json。
- 统一做法:进项目根目录,用目标用户(如
sudo -u www)执行composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - GitHub Actions 中,确保
composer config步骤和composer install在同一 job、同一 runner 用户下运行 - 验证是否真走镜像:加
-vvv运行composer install 2>&1 | grep "GET\|Downloading",看请求域名是不是mirrors.aliyun.com,而不是只信config输出










