答案是中文镜像同步插件元数据无特殊处理,插件更新慢主因是本地缓存packages.json未刷新(15分钟不过期)或作者未发布新版;解决需用composer update --refresh(≥2.5)强制重拉元数据,而非clear-cache。

Composer中文镜像根本不处理插件更新
中文镜像只同步 Packagist 官方元数据(packages.json、provider-*.json 等),对 Composer 插件(如 composer-plugin-api 兼容的包)不做特殊识别或加速——它不区分“普通包”和“插件”,一律按标准流程拉取、缓存、提供。
所谓“插件更新慢”,本质是:插件本身发布频率低 + 你本地没触发元数据刷新,和镜像无关。
- 插件包(如
hirak/prestissimo、dealerdirect/phpcodesniffer-composer-installer)只要被作者提交到 Packagist,就会进入镜像同步队列,延迟 2–10 分钟,和其他包一样 - 但很多插件长期不发新 tag,甚至已废弃;你看到“没更新”,大概率是作者根本没 push 新版本,不是镜像卡住
- 镜像不会主动扫描 GitHub/GitLab 仓库,也不会监听私有插件源——如果你用
"repositories"自定义了插件源,镜像完全不代理,composer update会 fallback 到原始地址(国内直连常超时)
为什么 composer update 不装新插件版本
最常见原因不是镜像没同步,而是 Composer 复用本地缓存的 packages.json,15 分钟内拒绝重拉——哪怕镜像站已有 v2.4.0,你本地仍卡在 v2.3.0 的快照里。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer show vendor/plugin-name查当前装的版本,再打开浏览器访问https://mirrors.aliyun.com/composer/p/vendor/plugin-name.json,对比版本号是否一致 - 如果镜像站已有新版,但
composer update vendor/plugin-name仍返回Nothing to install or update,说明本地元数据没刷新 -
composer clear-cache不解决这个问题——它清的是 ZIP 包,不是packages.json快照 - 正确做法:
composer update --refresh(仅 Composer ≥ 2.5 支持),或手动删掉$(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer/目录
插件依赖解析卡顿,换镜像也没用
插件更新慢 ≠ 依赖解析慢。后者是 Composer 本地计算行为,和镜像源无关——尤其是启用 "optimize-autoloader": true 或 "classmap-authoritative": true 后,每次 update 都会扫全量 vendor/ 目录,I/O 开销极大。
- 确认是否真卡在网络:加
-vvv参数跑composer update vendor/plugin-name,看日志里卡在Reading packages.json from cache还是Downloading https://... - 如果卡在
Resolving dependencies阶段,说明是依赖图复杂或稳定性约束太紧(比如"minimum-stability": "dev"),换镜像无济于事 - 插件自身若含大量
require-dev或未锁定版本范围(如"monolog/monolog": "^3.0"),也会拖慢解析;建议插件开发中固定composer-plugin-api版本(如"composer-plugin-api": "^2.0")
临时切回官方源验证插件是否真发布了
当怀疑插件“应该有新版但镜像没同步”,别只盯着镜像站——先排除 Packagist 侧未生效。
- 直接访问
https://packagist.org/packages/vendor/plugin-name,看最新 tag 是否出现在页面右上角版本列表里 - 如果 Packagist 页面都还没显示,说明作者没点 “Update” 或没配置自动 hook,镜像自然不可能有
- 临时切回官方源验证:
composer config -g repo.packagist composer https://packagist.org,再composer update --refresh vendor/plugin-name;成功后再切回来 - 注意:某些插件(如基于私有 GitLab 的)根本不在 Packagist 上注册,此时必须靠
"repositories"手动声明,镜像完全不参与
真正容易被忽略的点:插件更新失败往往发生在 post-update-cmd 阶段(比如执行 phpstan analyse 或 phpcs),而非下载环节。这时候报错日志里根本不会出现镜像 URL,但你会误以为是源的问题。

















