删 composer.lock 是最直接有效的动作,否则 composer update 永远不会拉新版本;还需同步清理 ~/.composer/cache/repo/https---packagist.org/、vendor/composer/installed.json 和 composer.lock 三处状态快照。

删 composer.lock 是最直接有效的动作,否则 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.lock:硬编码了每个包的版本、dist.sha256和source.reference;不删它,update就只是重装旧版
必须同步清理的三个位置(顺序不能错)
先清基础缓存避免干扰,再逐个击破状态残留:
- 运行
composer clear-cache - 删元数据目录:
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,却留着它,结果 update 依然原地不动。Composer 认为“锁文件没变,就不需要动版本”。它不是缓存,但它是 update 行为的开关;不碰它,其他操作全是白忙。










