composer clear-cache 常无效,因其仅清 files/ 和 vcs/,不清理 repo/https---packagist.org/ 下的 packages.json 等关键元数据,而该目录决定新版本可见性;真正生效需同步删除该 repo 子目录、vendor/composer/installed.json 和 composer.lock。

直接删 composer.lock 和 vendor/composer/installed.json,再手动清掉 ~/.composer/cache/repo/https---packagist.org/(或对应镜像目录),比只跑 composer clear-cache 有效得多——后者根本不管真正卡住更新的元数据快照。
为什么 composer clear-cache 常常没用
composer clear-cache 只清 ~/.composer/cache/files/(ZIP 包)和 vcs/(Git 克隆),但完全跳过 repo/ 下按 URL 哈希命名的子目录,比如 https---packagist.org/。这个目录里存着 packages.json 和 provider-*.json,Composer 解析“有哪些新版本”时优先读它。哪怕你刚切了国内镜像,只要这目录还在,它就继续连旧源、用旧索引。
- 执行
composer clear-cache后仍看到Reading /path/to/cache/packages.json,说明元数据根本没刷新 - 改了
repositories配置却拉不到私有包?大概率是repo/https---your-private-repo.com/残留了旧 provider 映射 - Windows 用户在 PowerShell 里用
$(composer config --global cache-dir)要加.Trim(),否则路径拼接失败
必须同步清理的三个位置
少一个都会让 composer update 继续复用旧状态:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先运行
composer clear-cache:清基础缓存,避免干扰 - 再删元数据目录:
rm -rf $(composer config --global cache-dir)/repo/https---packagist.org/(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\repo\https---packagist.org\"(Windows CMD) - 删本地快照:
rm -f vendor/composer/installed.json - 删锁文件:
rm -f composer.lock—— 这步最容易被跳过,但留着它,update就绝不会升版
验证是否真清干净了
别信命令返回 “Cache cleared”,要看实际行为:
- 运行
composer update --dry-run -v - 紧盯输出里有没有
Downloading https://packagist.org/packages.json或Curl GET https://...日志 - 如果只有
Reading /path/to/cache/packages.json,说明repo/没删对,重来 - 若项目设了
"minimum-stability": "stable",而目标包只发了dev版,那不是缓存问题,是约束本身在过滤
最常被忽略的是 composer.lock。很多人删了缓存、删了 installed.json,却留着它,结果 update 依然原地不动——因为 Composer 认为“锁文件没变,就不需要动版本”。










