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

Composer install 后不会自动清理缓存,这不是 bug,是设计使然——缓存本就为了加速下次操作。想省磁盘空间,得手动干预,而且重点不是“清不清”,而是“清哪里、怎么清、清完会不会踩坑”。
怎么确认缓存真占地方?别凭感觉删
很多人看到磁盘告警,立刻跑 composer clear-cache,结果发现空间没变。问题往往出在根本没查对地方。
- 先查真实路径:
composer config --global cache-dir—— 输出的才是 Composer 当前认的路径,~/.composer/cache可能已被COMPOSER_CACHE_DIR或公司镜像覆盖 - Linux/macOS 看大小:
du -sh $(composer config --global cache-dir) - Windows 直接在资源管理器地址栏粘贴
%APPDATA%\Composer\Cache→ 右键“属性” - 不到 200 MB?基本不用管;超过 1.5 GB 且半年没碰老项目,才值得动手
- 顺手对比:
du -sh vendor/—— 中等 Laravel/ThinkPHP 项目,vendor/常占 300–800 MB,远超缓存
为什么 composer clear-cache 清完空间没变化?
最常见原因是:你真正想删的是 vendor/,不是缓存。另一个隐藏元凶是 vcs/ 目录——它默认不被 clear-cache 清理,但单个 Git 裸仓库就能吃掉 300–800 MB。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer clear-cache默认只清files/、repo/、http/,跳过vcs/ -
vcs/存的是完整.git目录,切分支/换源频繁时极易积攒废弃仓库,几乎不复用 - 要清它,得手动:
rm -rf ~/.composer/cache/vcs/*(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows) - 清完再跑
du -sh $(composer config --global cache-dir),才能看到真实释放量
CI/CD 或服务器上执行 clear-cache 卡住?加这两个参数
在 GitHub Actions、GitLab CI 或无交互终端里,composer clear-cache 默认会等待确认,直接 hang 住。
- 必须加
--no-interaction:避免卡在交互提示 - 建议加
--dry-run先预检:输出将要清理的路径,确认是否指向预期位置(比如 NFS 挂载点而非本地磁盘) - 命令组合示例:
composer clear-cache --no-interaction --dry-run→ 确认无误后再去--dry-run - 如果仍卡住,说明有后台进程锁着缓存目录:Linux/macOS 用
lsof +D $(composer config --global cache-dir)查占用,Windows 用handle.exe -p php.exe(需 Sysinternals 工具)
清缓存后装包变慢?这不是故障,是设计
清完 repo/ 和 files/,首次 composer install 必然变慢——因为得重新 HTTP 请求拉 packages.json,重下所有 .zip 包。
- 国内用户务必提前配好镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 想长期省空间又不牺牲速度,可禁用 VCS 缓存:
composer config --global cache.vcs false,后续所有包强制走--prefer-dist流程 - 已存在的
vcs/目录可安全手动删,下次需要时自动重建 - 真正容易被忽略的是 inode 耗尽:
df -i显示 Use% 接近 100% 时,哪怕磁盘剩 20GB 也会报No space left on device—— 这时候清vcs/或files/下成千上万的小文件,比清大文件更有效










