先确认真实缓存路径:运行composer config --global cache-dir,再用du -sh(Linux/macOS)或资源管理器属性(Windows)查看大小;超1.5GB且半年未用才需处理,否则空间不变常因误删vendor/、vcs/或临时目录未清理。

缓存路径占满磁盘,别急着删,先迁移再清理更稳妥——尤其当它落在 C 盘或小容量分区时。
怎么确认 Composer 正在用哪个缓存路径?
很多人跑 composer clear-cache 后发现空间没变,根本原因是缓存路径早被环境变量或公司镜像覆盖了,~/.composer/cache 或 %APPDATA%\Composer\Cache 根本不是当前实际路径。
- 查真实路径:
composer config --global cache-dir - Linux/macOS 看大小:
du -sh $(composer config --global cache-dir) - Windows 直接在资源管理器地址栏粘贴
%APPDATA%\Composer\Cache→ 右键“属性” - 不到 200 MB?基本不用管;超 1.5 GB 且半年没碰老项目,才值得动手
为什么 composer clear-cache 清完空间几乎不变?
最常见误判:你真正想删的是 vendor/,不是缓存。一个中等 Laravel 项目 vendor/ 常占 300–800 MB,而缓存可能只有 42 MB。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
clear-cache默认跳过cache/vcs/—— 这个目录单个 Git 裸仓库就 300–800 MB,还疯狂耗 inode - 它也不清
sys_get_temp_dir()下堆积的composer_*.zip、php*.phar文件,这些更难察觉 - 如果
du -sh显示缓存本身很小,却报No space left on device,立刻运行df -i查 inode 使用率
如何安全迁移缓存到大分区?
换路径比反复清理更治本。尤其当默认缓存落在 C 盘、WSL 的 /home 或 macOS 的系统盘时,迁移能一劳永逸避开爆满风险。
- 迁移到新位置(示例 Linux):
composer config --global cache-dir "/mnt/data/composer-cache" - Windows 示例:
composer config --global cache-dir "D:\composer-cache" - 迁移后旧缓存不会自动删除,需手动清理(见下一条)
- CI/CD 中建议配合
COMPOSER_CACHE_DIR环境变量使用,避免依赖全局配置
迁移后怎么精准清理旧缓存?
迁移只是改了“写入目标”,旧缓存还在原地吃空间。手动删前务必停掉所有 composer install 或 update 进程,否则可能触发 Corrupted cache file 报错。
- 清
cache/files/(ZIP 包):find ~/.composer/cache/files -type d -mtime +90 -delete(Linux/macOS) - 清
cache/vcs/(Git 裸仓库):rm -rf ~/.composer/cache/vcs/*(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows) - 清临时文件:
php -r "echo sys_get_temp_dir();"查路径,再删composer_*.zip类文件 - 禁用 Git 克隆缓存(长期省事):
composer config --global cache.vcs false,后续强制走--prefer-dist
真正容易被忽略的是 cache/vcs/ 和 sys_get_temp_dir() 里的临时 ZIP——它们不随 clear-cache 消失,却最占空间、最耗 inode,且常被杀毒软件或 IDE 锁住导致手动删除失败。

















