运行 composer clear-cache 后需手动验证:先执行 composer config --global cache-dir 确认真实路径,再用 ls -a(linux/macos)或 dir(windows)检查该目录下是否仅剩空子目录或占位文件;若 files/、repo/、vcs/ 中仍有 .zip 或 git 仓库,则未清干净——尤其 vcs/ 默认被跳过,须单独 rm -rf vcs/* 或 rd /s /q vcs 手动清理。

运行 composer clear-cache 后怎么验证是否真清空了
它只删 files/、repo/、vcs/ 三个子目录,但不会报错告诉你“删了 0 个文件”——哪怕缓存目录本身不存在,命令也静默成功。所以必须手动确认。
- 先查真实路径:
composer config --global cache-dir,别信默认路径,尤其在 CI 或公司镜像环境下,COMPOSER_CACHE_DIR可能已覆盖 - 再看目录是否存在且为空:
ls -A $(composer config --global cache-dir)(Linux/macOS)或dir "%APPDATA%\Composer\Cache"(Windows CMD) - 如果输出为空或仅含
.gitignore这类占位文件,才算清干净;若看到files/下还有.zip,说明命令没执行成功,或被权限/进程锁住
vcs/ 目录为什么总残留?它不归 clear-cache 管
composer clear-cache 默认跳过 vcs/,而这个目录常藏有完整 Git 裸仓库(每个 300–800 MB),是磁盘占用主力。你看到“缓存清理完成”,但 du -sh ~/.composer/cache 仍显示 2.1 GB,八成是 vcs/ 没动。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 手动删才有效:
rm -rf ~/.composer/cache/vcs/*(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows) - 注意尾部斜杠:
vcs/和vcs在rm -rf下行为不同,带斜杠更安全,避免误删同名父目录 - 删前检查是否有
composer update进程在后台跑,否则可能触发Corrupted cache file
清完还看到旧包、装包不走网络?可能是内存缓存或插件私有缓存
composer clear-cache 只清磁盘持久缓存,不碰命令执行期间的内存缓存,也不管插件自己建的目录(比如旧版 hirak/prestissimo 会在 ~/.composer/cache/prestissimo/ 单独存档)。
- 验证是否真走网络:加
-v参数重装一个包,看日志里有没有Downloading或GET https://...;如果秒出结果且无网络请求,说明某处缓存还在生效 - 检查插件缓存:进
$(composer config --global cache-dir)目录,用find . -type d -name "*prestissimo*" -o -name "*cache*"扫一遍 - 终极验证法:删整个缓存目录(不是只清子目录),再跑
composer install --no-cache,这时所有下载都强制走网络,没捷径可绕
CI/CD 里“清了但没生效”的典型陷阱
GitHub Actions、GitLab CI 中常见现象:composer clear-cache 显示成功,但后续 composer install 依然秒完成,空间也没释放。根本原因不是命令失效,而是环境隔离或用户错配。
- Docker 构建时用
root跑过composer install,后续非 root 用户执行clear-cache会因权限拒绝删除 - CI runner 用了缓存挂载(如
~/.composer/cache挂到 NFS),clear-cache实际删的是本地空目录,NFS 上的缓存纹丝不动 - 解决方案:加
--no-interaction --dry-run预检路径,再用sudo rm -rf或显式指定挂载点路径手动删
vcs/ 被默认跳过、插件另起炉灶、CI 中用户与挂载点错位。每一步都得用命令反向验证,不能只信输出那一行“Cache cleared”。










