composer clear-cache 实际清理 files/、repo/、installers/ 子目录,不清理 vcs/、vendor/、composer.lock 及系统临时目录;vcs/ 默认跳过但最占空间,需手动删除。

composer clear-cache 能清掉大部分本地缓存,但“全部”要打引号——它默认跳过 vcs/ 目录,而这个目录恰恰最占空间、最容易被忽略。
composer clear-cache 实际清理哪些子目录?
它只动 ~/.composer/cache(Linux/macOS)或 %APPDATA%\Composer\Cache(Windows)下的这三类:
-
files/:所有下载的.zip、.tar包 -
repo/:packages.json快照、元数据索引 -
installers/:自定义安装器临时缓存
它不碰:
-
vcs/(Git 克隆缓存,默认被跳过) -
vendor/、composer.lock、项目文件 -
sys_get_temp<em>dir()</em>下的临时composer<em>.zip</em>或php.phar - 插件私有缓存(如旧版
hirak/prestissimo的prestissimo/子目录)
如果你发现清完空间没变,八成是 vcs/ 里躺着几个 500 MB 的裸 Git 仓库。
为什么 composer clear-cache 后磁盘空间几乎不变?
常见原因就三个:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 你真正想删的是
vendor/,不是缓存——一个中等 Laravel 项目vendor/常占 300–800 MB,而缓存可能才 42 MB -
vcs/没被清,单个 Git 仓库副本就吃掉 300–800 MB,还容易耗尽 inode - 临时目录(
sys_get_temp<em>dir()</em>)堆积了大量未清理的composer*.zip,clear-cache完全不碰这里
验证方法:
Linux/macOS:
du -sh $(composer config --global cache-dir)/* | sort -hr
Windows:进资源管理器地址栏粘贴
%APPDATA%\Composer\Cache → 看各子目录大小
如果 vcs/ 占比超 70%,那就对了。
怎么才算“清理全部本地缓存”?
得手动补一刀:
- Linux/macOS:
rm -rf $(composer config --global cache-dir)/vcs
- Windows(CMD):
rd /s /q "%APPDATA%\Composer\Cache\vcs"
- Windows(PowerShell):
Remove-Item -Recurse -Force "$env:APPDATA\Composer\Cache\vcs"
再顺手清下系统临时目录(常被遗忘):
- Linux:
find "$(sys_get_temp<em>dir)" -name "composer</em>*" -mmin +60 -delete 2>/dev/null
- macOS:
find "$(sys_get_temp<em>dir)" -name "composer</em>*" -mtime +1 -delete 2>/dev/null
- Windows:
del /s /q "%TEMP%\composer_<em>.</em>" 2>nul
注意:执行前确保没有 composer install 或 update 进程在后台跑,否则可能触发 Corrupted cache file 报错。
真正难处理的不是缓存本身,而是那些插件自建的隐藏目录、被杀毒软件锁住的 vcs/ 文件、或者 CI 环境里因用户权限错乱导致的删不动问题。清之前先确认路径、查占用、看锁态,比盲目 rm -rf 安全得多。

















