composer clear-cache仅清理部分缓存,真正占磁盘和inode的是cache/vcs/、cache/files/中的旧zip包及系统临时目录下的composer_*.zip文件;须先用composer config --global cache-dir确认真实路径,再针对性清理三处并禁用cache.vcs治本。

composer clear-cache 能清掉一部分缓存,但清完空间没变是常态——真正吃磁盘和 inode 的,是 cache/vcs/、cache/files/ 里积压的老 ZIP,还有系统临时目录下的 composer_*.zip。不查真实路径、不看实际占用,直接跑命令等于白忙。
先确认缓存路径和真实占用大小
很多人删了~/.composer/cache 却没效果,是因为缓存路径早被 COMPOSER_CACHE_DIR 环境变量或公司镜像改过。必须用 Composer 自己认的路径:
- 运行 composer config --global cache-dir,输出才是当前生效路径
- Linux/macOS 查体积:du -sh $(composer config --global cache-dir)
- Windows:把 %APPDATA%\Composer\Cache 粘进资源管理器地址栏 → 右键“属性”
不到 200 MB 基本不用管;超 1.5 GB 且半年没碰老项目,才值得动手。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
为什么 composer clear-cache 清完空间没变?
最常见三个原因,按实际发生频率排序:
- 你真正想删的是 vendor/ 目录(中等 Laravel 项目常占 300–800 MB),而 clear-cache 完全不碰它
- cache/vcs/ 默认被跳过,但单个 Git 裸仓库含完整 .git,动辄 300–800 MB,还生成上万小文件,是 No space left on device 的高频元凶
- sys_get_temp_dir() 下堆积的 composer_*.zip、php*.phar 没被清理,这个路径 Windows 是 %TEMP%,Linux/macOS 是 /tmp手动清理三处最占空间的位置
先停掉所有composer 进程(ps aux | grep composer 或 tasklist | findstr composer),否则删一半会报 Corrupted cache file:
- vcs/ 目录:安全全清,下次需要自动重建
Linux/macOS:rm -rf $(composer config --global cache-dir)/vcs
Windows:rd /s /q "%APPDATA%\Composer\Cache\vcs"
- files/ 目录:可按时间删旧包
Linux/macOS:find $(composer config --global cache-dir)/files -type d -mtime +90 -delete
- 临时目录:先查路径,再删匹配文件
运行 php -r "echo sys_get_temp_dir();" 得到路径
Linux/macOS:find $(php -r "echo sys_get_temp_dir();") -name "composer_*" -mmin +60 -delete 2>/dev/null长期避免反复爆满的关键动作
反复清理只是擦边球,治本靠配置: - 禁用 Git 缓存:composer config --global cache.vcs false,后续所有包强制走 --prefer-dist
- 换缓存路径到大分区:composer config --global cache-dir "/mnt/bigdisk/composer-cache"
- 同时改系统临时目录(否则解压阶段仍撞 /tmp 空间不足):export TMPDIR="/mnt/bigdisk/tmp"真正容易被忽略的是 inodes 耗尽——尤其 WSL 或 APFS 下,cache/vcs/ 里几万个 Git 对象会快速吃光节点,df -i 显示 Use% 接近 100% 时,哪怕 df -h 还剩几十 GB,也会报 No space left on device。










