答案是镜像配置未生效,必须严格满足三要素:键名repo.packagist(单数)、type值显式为"composer"、url为https且末尾带/;验证需输出完整json,否则composer静默回退至官方源。

composer install 卡在 Loading composer repositories 怎么办
大概率不是缓存问题,而是镜像配置根本没生效。Composer 2.x 对 repo.packagist 配置极其敏感,漏掉任一条件就会静默回退到官方源 https://packagist.org,导致超时或被墙。
必须同时满足三点:
-
composer config -g repo.packagist设置的键名是repo.packagist(不是repos.packagist或packagist.org) -
type值显式设为"composer"(不能省略,也不能写成"composer-type") -
url必须是 HTTPS 且末尾带/,例如https://mirrors.aliyun.com/composer/(少斜杠会拼出 404 路径)
验证方式:运行 composer config -g repo.packagist,输出应为 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} 或纯 URL 字符串。若为空、null 或仍是官方地址,说明配置失败。
clear-cache 真的能解决问题吗
不能盲目清缓存。执行 composer clear-cache 只清理 composer config --global cache-dir 返回的那个路径,不一定是 ~/.composer/cache —— CI 环境常通过 COMPOSER_CACHE_DIR 挂载到 NFS,清错位置等于白干。
先确认真实路径和占用情况:
- Linux/macOS:
composer config --global cache-dir→ 再执行du -sh $(composer config --global cache-dir) - Windows:打开资源管理器,粘贴
%APPDATA%\Composer\Cache,右键“属性”
不到 200 MB 别清;超 1.5 GB 且半年没碰老项目,才值得动手。如果路径显示 /mnt/nfs/composer-cache,说明缓存不在本地磁盘,清它可能影响其他构建节点。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
缓存清理后 install 还失败?试试这几个关键动作
清完缓存不代表问题解决。以下操作比反复 clear-cache 更有效:
- 加
--no-cache强制跳过所有缓存:composer install --no-cache - 删掉
composer.lock再重装(仅限开发环境,生产慎用) - 检查
vendor/是否残留旧包,尤其vendor/composer/installed.json里有没有冲突条目 - 运行
composer diagnose,看是否提示网络不通、SSL 验证失败或 CA 证书过期
注意:composer install 默认读 composer.lock,哪怕镜像已配好,锁文件里记录的仍是旧源地址,所以必须配合 --no-cache 或重生成锁文件才能生效。
为什么删了 vendor 和 lock 文件还是装不上
常见于用了 Google API 类库等按需加载场景。比如 google/apiclient-services 默认装全量,但你在 composer.json 的 extra 里声明了只用 ["GoogleAnalyticsAdmin"],此时仅清缓存没用,必须触发 cleanup 脚本。
正确做法:
- 手动删掉
vendor/google/apiclient-services整个目录 - 确保
composer.json中extra区块存在且格式正确:"google/apiclient-services": ["GoogleAnalyticsAdmin"] - 运行
composer install,让 Composer 自动触发pre-autoload-dump钩子执行清理
这类问题本质不是缓存,而是依赖安装逻辑被定制过,跳过钩子就永远装不全或装错。










