composer clear-cache 默认不清理 vcs/ 目录,而该目录单个 git 克隆常占 300–800 mb 且耗尽 inode,是磁盘空间和 inodes 的主要占用者;需先用 composer config --global cache-dir 确认路径,再通过 du -sh $(composer config --global cache-dir)/vcs 检查大小,必要时手动删除。

composer clear-cache 本身不会显著释放磁盘空间,除非你确认 ~/.composer/cache/(或 Windows 的 %APPDATA%\Composer\Cache)已膨胀到 1.5 GB 以上——多数人执行后没变化,是因为真正占空间的不是它,而是 vendor/ 或 vcs/ 子目录。
怎么确认缓存路径和真实占用量
别凭印象猜路径,composer config --global cache-dir 才是唯一可信来源。公司镜像、COMPOSER_CACHE_DIR 环境变量、自定义 COMPOSER_HOME 都可能把缓存挪到非默认位置。
- Linux/macOS:运行
du -sh $(composer config --global cache-dir)查总大小;再单独看du -sh $(composer config --global cache-dir)/vcs,常占总量 70% 以上 - Windows:在资源管理器地址栏粘贴
%APPDATA%\Composer\Cache,右键 → “属性”;若不到 200 MB,基本不用管 - 输出是
4.0K或提示No cache files to delete,说明缓存几乎为空,清也白清
为什么 clear-cache 后空间几乎没变
根本原因不是命令失效,而是你删错了“大户”:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
vendor/目录才是主力,一个中等 Laravel 项目就占 300–800 MB,而composer clear-cache完全不碰它 -
vcs/目录被默认跳过——单个 Git 裸仓库(如laravel/framework的 shallow clone)常达 300–800 MB,且每个都占大量 inodes - 执行
df -i查 inode 使用率,若接近 100%,报No space left on device很可能是vcs/里上万个小文件撑爆了 inode,不是磁盘块用光
如何安全释放空间,而不是盲目清缓存
composer clear-cache 是安全的全量操作,但多数场景下,手动清理更精准:
- 只清积压的老 ZIP 包(不影响元数据):
find ~/.composer/cache/files -name "*.zip" -mtime +90 -delete - 放心清
vcs/(下次需要会自动重建):rm -rf ~/.composer/cache/vcs/*(Linux/macOS)或手动删%APPDATA%\Composer\Cache\vcs\(Windows) - 别动
repo/packagist.org/:这是核心元数据快照,删了会导致首次composer update明显变慢 - 手删前确保没有
composer install或update进程在后台跑,否则可能触发Corrupted cache file
clear-cache 卡住、报错或没输出怎么办
这不是命令坏了,是缓存目录里存在锁冲突或权限问题:
- 提示
Cache directory does not exist:检查COMPOSER_CACHE_DIR是否指向空路径,或是否曾用sudo composer install导致部分文件属主为 root - 反复运行大小不变:杀毒软件或 PHPStorm 正在扫描
~/.composer/cache/files/下的 ZIP,系统锁住不让删 - Docker CI/CD 中混用用户:root 用户构建过依赖,后续非 root 用户执行
clear-cache会被拒绝,需统一用户或修复权限 - 无任何输出 ≠ 失败:
composer clear-cache默认不打印成功提示,只在终端输出类似Clearing cache (12.4 MiB)的行
真正容易被忽略的是:vcs/ 目录长期不处理,既吃空间又耗 inode,而且 clear-cache 永远不碰它——这不是疏漏,是设计如此。你要么接受它,要么主动进目录删,别指望一条命令包打天下。










