Composer 缓存需用 composer clear-cache 安全清理,避免手动删除导致索引损坏;该命令清除归档、元数据及安装器缓存,并校验完整性,不影响已安装项目。

Composer 缓存不会自动清理,长期使用后 ~/.composer/cache(Linux/macOS)或 %APPDATA%\Composer\cache(Windows)可能占数 GB 空间;直接删文件夹可行,但推荐用内置命令,避免破坏缓存索引或引发后续安装异常。
用 composer clear-cache 安全清空所有缓存
这是最标准、最安全的方式,会同时清除已下载的包归档(.zip/.tar)、元数据(repo.packagist.org)和已构建的安装器缓存:
- 运行
composer clear-cache,终端会显示清理路径和释放大小(如Clearing cache (2.4GB)) - 该命令会校验缓存完整性,删除损坏条目,比手动删更稳妥
- 执行后不影响已安装项目,下次
composer install或composer require会重新下载所需内容 - 若提示
Permission denied,说明某些缓存文件权限异常,可加sudo(macOS/Linux),但 Windows 下请以管理员身份运行终端
只清理特定类型缓存:比如只删包归档不碰元数据
默认 clear-cache 是全量清理;若只想释放空间又想保留 Packagist 元数据(加速后续 composer search 或 composer show),可用 --no-plugins 配合手动删子目录(不推荐新手):
- 归档缓存路径:
~/.composer/cache/files/(含大量vendor/name-hash.zip) - 元数据缓存路径:
~/.composer/cache/repo/(删了会导致首次composer update变慢) - 运行
rm -rf ~/.composer/cache/files/*(Linux/macOS)或del /s /q "%APPDATA%\Composer\cache\files"(Windows CMD)可定向释放空间 - 注意:
files/下的文件名含哈希,不可按时间删,否则可能删掉正在使用的包
缓存位置在哪?怎么确认当前路径
不同系统、不同 Composer 版本(尤其是全局 vs Homebrew 安装)可能导致缓存路径不同,别凭经验硬删:
- 运行
composer config --global cache-dir查看当前配置的缓存目录 - 若输出为空,说明用的是默认路径;此时可运行
composer diagnose,其中Cache directory行会明确写出实际路径 - Windows 用户注意:
%APPDATA%通常展开为C:\Users\,不是\AppData\Roaming Program Files或用户桌面 - WSL 用户需区分 Windows 和 Linux 的
~/.composer,别在错误子系统里删
删完还剩很多空间?可能是旧版 Composer 的 vendor 缓存残留
Composer 1.x 曾将解压后的包暂存到 ~/.composer/cache/vcs/(Git 克隆副本),升级到 2.x 后这部分不再使用,但不会自动清理:
- 检查是否存在
~/.composer/cache/vcs/目录,若存在且体积大,可安全删除整个vcs/文件夹 - 该目录仅用于早期
repositories.type: vcs场景,现代项目基本不用 - 删除前建议先
ls -Sh ~/.composer/cache/vcs/ | head -n5看下最大几个子目录是否确实陈旧(修改时间早于 2022 年)
缓存本身是无状态的,但 Composer 会依赖其内部索引做快速比对;跳过 clear-cache 直接删文件夹虽能腾出空间,却可能让下一次 composer update 卡在 “Resolving dependencies” 阶段几秒到几十秒——这不是 bug,是它在重建索引。真正省事的办法,就是老老实实用命令清。










