镜像未生效主因是项目级 repositories 配置覆盖全局设置;元数据缓存15分钟不自动更新;国内镜像同步有延迟且过滤 dev 分支;VCS 配置错误会静默失效。

镜像源没真正生效,项目级配置覆盖了全局设置
你执行了 composer config -g repos.packagist 看到阿里云地址,不代表它真在用——只要 composer.json 里有 "repositories" 字段,哪怕只写了 {"packagist.org": false},Composer 就会忽略全局镜像,走项目级配置。常见错误是删了镜像但忘了删 composer.json 里的 repositories,结果命令行看着配对了,实际根本没走镜像。
验证方式:composer config repositories 输出非空,就说明项目级配置在起作用;composer config -g repos.packagist 返回空也不代表没设过,得看是否被项目覆盖。
- 临时禁用项目级源:
composer config --unset repositories - 确认生效源:
composer config --list | grep repositories,重点看repositories.packagist.url的值 - 别用
composer config --global repos.packagist false,这是无效写法,会被静默忽略
元数据缓存没刷新,还在读15分钟前的旧索引
composer clear-cache 清不掉 packages.json 的内存缓存——Composer 默认复用未过期(15分钟内)的元数据快照,即使你刚切了镜像,它也懒得去拉新数据。
真正有效的刷新是:composer update --refresh(仅 Composer ≥ 2.5 支持)。它强制丢弃所有 packages.json 和 provider-*.json,只从当前生效镜像重载索引,不碰 ZIP 缓存,更快更准。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 老版本(≤ 2.4)只能手动删缓存子路径:
rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer - 验证是否真在拉新数据:
composer update --dry-run -v,日志里出现Downloading https://...才算成功 - 别信
clear-cache后立刻能装——它只是清了包文件,元数据还是旧的
镜像本身没同步,或跳过了 dev 分支
国内镜像(阿里云、腾讯云等)对 Packagist 的同步有 5–30 分钟延迟,高峰期可能更久。新发布的包、刚打的 tag、甚至 dev-main 这类开发分支,镜像默认不拉取——因为它们通常被过滤掉,只同步 stable 版本。
直接验证镜像状态最可靠:curl -I https://mirrors.aliyun.com/composer/p/vendor/package-name.json,返回 404 或内容里缺你要的版本,就是镜像没同步。
- 查官网是否已发布:
https://packagist.org/packages/vendor/package-name - 装
dev-main时加--prefer-source强制走 Git 克隆,绕过镜像元数据(但会慢) - 临时切回官方源验证:
composer config --global repos.packagist composer https://packagist.org,再试require
私有包或 VCS 仓库配置错一个字段就静默失效
VCS 类型("type": "vcs")必须配对合法 URL(带 https:// 或 git@),且不能和 "packagist.org": false 写在同一个对象里。写错一个字母,Composer 就会静默跳过整个 repositories 数组,继续查默认源。
常见错误:把 "type": "git" 写成 "type": "github",或者 URL 少了协议头,或者 JSON 格式不合法导致整个字段被忽略。
- 正确写法示例:
{"type": "vcs", "url": "https://github.com/your-org/your-repo"} - 私有 GitHub/GitLab 必须提前配置 token:
composer config --global github-oauth.github.com <token> - 别指望
composer search能查到私有包——它只查 Packagist 全局索引,和你的repositories无关
dev-main 版本,又用了阿里云镜像,还忘了删项目里的 repositories 配置——这三件事叠在一起,composer require 就会安静地报 “Package not found”,连个提示都没有。

















