必须同步清理三处:先composer clear-cache,再删~/.composer/cache/repo/https---packagist.org/、vendor/composer/installed.json和composer.lock;否则update仍复用旧元数据与版本锁定。

直接删三处,再 composer update —— 光跑 composer clear-cache 基本没用,它不碰真正卡住更新的元数据和锁文件。
为什么 composer clear-cache 总是不生效
这个命令只清 ~/.composer/cache/files/(ZIP 包)和 vcs/(Git 克隆),但 update 时真正决定“能升到哪个版本”的是以下三处:
-
~/.composer/cache/repo/https---packagist.org/:存着过期的packages.json和provider-*.json,Composer 靠它查“有哪些新版本” -
vendor/composer/installed.json:记录当前已装包的精确版本,composer show和依赖解析都读它 -
composer.lock:硬编码了每个包的版本、dist.sha256和source.reference,不删它,update就不会拉新版本
必须同步清理的三个位置(顺序不能错)
先清基础缓存,再逐个干掉元数据快照和锁文件:
- 运行
composer clear-cache(避免旧 ZIP 或 VCS 缓存干扰) - 删元数据目录:
rm -rf $(composer config --global cache-dir)/repo/https---packagist.org/ - 删本地状态:
rm -f vendor/composer/installed.json - 删锁文件:
rm -f composer.lock
Windows 用户注意:$(composer config --global cache-dir) 在 PowerShell 中需写成 $(composer config --global cache-dir).Trim(),或直接用 $env:APPDATA\Composer\Cache\repo\https---packagist.org\。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
验证是否真刷新了 metadata
别信“执行完就 OK”,要亲眼看到 Composer 重新拉远端索引:
- 运行
composer update --dry-run -v - 盯紧输出里有没有
Downloading https://packagist.org/packages.json - 如果只有
Reading /path/to/cache//packages.json,说明元数据没清干净,重走上一步
额外提醒:如果你项目里设了 "minimum-stability": "stable",而目标包只发布了 dev 或 beta 版本,那即使 metadata 刷新了也看不到——这不是缓存问题,是约束本身在过滤。
composer.lock 是最易被忽略的关键点
很多人删了缓存、删了 installed.json,却留着 composer.lock,结果 update 依然原地不动——因为 Composer 认为“锁文件没变,就不需要动版本”。它不是缓存,但行为上比缓存还顽固。

















