composer clear-cache 不彻底删除缓存,因默认跳过vcs/目录(占300–800mb)和系统临时zip文件;需手动删除vcs/及temp中composer_*.zip,并建议禁用cache-vcs。

直接运行 composer clear-cache 不等于“彻底删除”——它默认跳过 vcs/ 目录,而这个目录常占 300–800 MB,且容易耗尽 inode;真正要腾空间,必须手动补删或禁用。
为什么 composer clear-cache 后磁盘没变化
最常见原因不是命令失效,而是它根本没动你最占空间的部分:
-
vcs/目录被默认跳过:每个 Git 裸仓库(如laravel/framework的克隆)自带完整.git,大小远超files/中的 ZIP 包 - 临时 ZIP 文件堆积在
sys_get_temp_dir()(如/tmp或%TEMP%),clear-cache完全不碰这里 - 缓存路径被
COMPOSER_CACHE_DIR环境变量或公司镜像覆盖,clear-cache实际清理的是空目录或错误挂载点 - 权限问题:之前用
sudo composer install写入的文件,当前用户无权删除
如何确认真实缓存路径和占用
别猜路径,先查 Composer 自己认的位置:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查路径:
composer config --global cache-dir - Linux/macOS 查大小:
du -sh $(composer config --global cache-dir) - Windows 查大小:把输出路径粘贴进资源管理器地址栏 → 右键“属性”
- 重点看
vcs/子目录:若整体缓存超 1.5 GB,vcs/占比通常超 70%
手动删 vcs/ 和临时 ZIP 才算“彻底”
官方命令安全但保守,真要释放空间得自己动手:
- 删
vcs/(Linux/macOS):rm -rf $(composer config --global cache-dir)/vcs - 删
vcs/(Windows CMD):rd /s /q "%APPDATA%\Composer\Cache\vcs" - 清系统临时目录(Linux/macOS):
find $(sys_get_temp_dir()) -name 'composer_*.zip' -delete 2>/dev/null - 清系统临时目录(Windows):PowerShell 中运行
Get-ChildItem $env:TEMP -Filter "composer_*.zip" | Remove-Item - 删完建议禁用:
composer config --global cache-vcs false,后续 Git 包强制走--prefer-dist
CI/CD 或锁文件场景下的注意事项
自动化环境里,“彻底删”可能引发卡死或冲突:
- CI 中加
--no-interaction:否则clear-cache会等待交互确认而 hang 住 - 删前检查锁:Linux/macOS 用
lsof +D $(composer config --global cache-dir),Windows 用handle.exe -p php.exe(需 Sysinternals) - 不要在
composer install进程运行时手动rm -rf:可能触发Corrupted cache file错误 - 小磁盘机器(如 GitHub Actions 默认 14GB)建议永久禁用:
cache-vcs false+cache-max-size "500M"
所谓“彻底”,本质是绕过官方命令的保守策略,直击 vcs/ 和临时目录这两个沉默的磁盘杀手;但手动操作没有自动校验,删错位置或删到一半被写入,后续命令就可能出校验失败——这点容易被忽略,也最难回溯。










