composer clear-cache 仅删除 composer 缓存目录中的包归档、元数据快照和 zip 解压暂存内容,不删除 vendor 或 composer.lock;彻底清理需手动删 vendor 后执行 install。

composer clear-cache 会删掉哪些文件
composer clear-cache 是最直接的缓存清理命令,但它只清理 Composer 自己管理的缓存目录(如 ~/.composer/cache),不碰项目内的 vendor、composer.lock 或系统级临时文件。这个命令实际删除的是:
• 下载过的包 zip/tar 归档缓存
• 已解析的 composer.json 元数据(比如 packagist.org 的响应快照)
• ZIP 解压后的暂存内容(用于加速 install)
它不会影响已安装的依赖,也不会重置配置。
彻底释放磁盘空间要手动删 vendor 和 composer.lock 吗
不需要删 composer.lock——它是依赖锁定文件,删了再 install 会拉取新版,可能引入不兼容变更。
但 vendor 目录确实占大头,尤其含大量 dev 依赖或历史版本时。真正“彻底清理”空间的组合操作是:
- 运行
composer clear-cache - 进入项目根目录,执行
rm -rf vendor(Linux/macOS)或rmdir /s vendor(Windows) - 再运行
composer install—— 这步只装composer.lock里锁死的版本,比update更轻量、更确定
注意:如果项目没提交过 composer.lock,或它已过期,install 可能失败,此时需先 composer update --lock 生成新锁文件。
为什么 composer cache:clear 有时没反应
常见原因不是命令失效,而是你没看到它清的是哪块缓存:
- 命令输出显示 “Clearing cache (X MB)” 但数字很小 → 实际缓存本来就不多,或已被其他操作清过
- 用的是全局代理或自定义
cache-dir,而当前配置指向了别的路径 → 查看composer config --global cache-dir确认真实位置 - 正在运行的 Composer 进程(比如 IDE 内嵌终端未退出)锁住了缓存文件 → 关闭所有相关终端再试
- 某些 Linux 发行版中,
~/.composer/cache被挂载为 tmpfs(内存盘),重启后自动清空,所以手动清意义不大
长期维护建议:关掉不必要缓存类型
Composer 默认开启所有缓存,但如果你主要做 CI/CD 或本地频繁切换分支,可禁用部分缓存来减少体积和干扰:
- 关闭 ZIP 缓存(省最多空间):
composer config --global cache-files-dir "" - 禁用元数据缓存(适合网络稳定、包源响应快的环境):
composer config --global cache-repo-dir "" - 想恢复默认?删掉对应 config 行:
composer config --global --unset cache-files-dir
这些设置不影响功能,只是让每次 install 都重新下载和解析——对带宽和时间敏感的场景才需要权衡。










