清完composer clear-cache磁盘空间未变,因缓存通常仅占几百MB,真正大户是vendor/目录(300–800MB)和vcs/中废弃Git克隆(300–800MB/个),且clear-cache默认不删vcs/;应先用composer config --global cache-dir查路径,再用du -sh或资源管理器确认大小,超1.5GB且半年未用才清理,并优先手动删files/老包与vcs/目录。

清完 composer clear-cache 后磁盘空间没变,不是命令失效,而是你根本没找对“大户”——vendor/ 才是真占空间的地方,缓存通常只占几百 MB;真正该清的,是积压半年的老 .zip 包和废弃的 vcs/ Git 克隆目录。
怎么确认缓存到底占了多少空间
别靠资源管理器缩略图或直觉判断。缓存路径可能被 COMPOSER_CACHE_DIR 或公司镜像改过,composer config --global cache-dir 才是唯一可信来源:
- Linux/macOS:运行
du -sh $(composer config --global cache-dir),看真实体积 - Windows:把
%APPDATA%\Composer\Cache粘贴进资源管理器地址栏,右键 → “属性” - 不到 200MB?基本不用管;超 1.5GB 且半年没碰老项目,才值得动手
为什么 clear-cache 后空间几乎没少
因为 vendor/ 目录才是空间主力,一个中等 Laravel 项目就占 300–800MB;而缓存再满也多在 2–5GB 范围,且多数人长期不用才累积到这量级。更隐蔽的问题是 inode 耗尽:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
df -i查看 inode 使用率,若接近 100%,No space left on device就不是磁盘块(block)用光,而是小文件太多(每个.zip、每个packages.json都占一个 inode) -
vcs/目录最吃 inode 和空间:一个 Laravel 包的 Git 浅克隆含完整.git,动辄 300–800MB,且clear-cache默认不删它 - 想快速释放 inode?手动跑
rm -rf ~/.composer/cache/vcs/*(Linux/macOS)或删%APPDATA%\Composer\Cache\vcs\(Windows)
clear-cache 卡住、报错或没反应怎么办
这不是命令坏了,是缓存目录里有损坏文件或锁冲突:
- 长时间无输出、CPU 低、磁盘 I/O 几乎为 0 → 很可能是某个损坏的
.zip校验失败,Composer 在反复重试 - 报
Permission denied→ 检查ls -ld $(composer config --global cache-dir),若属 root,说明之前误用过sudo composer - 报
Could not delete ... packages.json→ 文件被 IDE 或杀毒软件占用,macOS/Linux 用lsof +D ~/.composer/cache查,Windows 用handle.exe -a cache - 加
--no-interaction可跳过交互提示,避免卡在确认环节
真正省空间又安全的操作顺序
别一上来就全删。优先处理高收益低风险项:
- 先清
~/.composer/cache/files/下的老包:find ~/.composer/cache/files -name "*.zip" -mtime +90 -delete(90 天前的归档) - 再清
vcs/:rm -rf ~/.composer/cache/vcs/*(安全,下次需要自动重建) - 最后跑
composer clear-cache收尾,它会清理repo/和http/,并重置缓存结构 - 手删前务必确认没有
composer install或update进程在后台运行,否则可能触发Corrupted cache file
缓存只是加速层,不是决策源头。清了它不会让 composer install 突然装上新版本,也不会修复网络、代理或源配置问题——这些得单独查 composer config -g repo.packagist 和 composer diagnose。

















