composer clear-cache 清除的是 Composer 下载的包压缩包及解压临时文件,不影响 vendor/ 和 composer.lock;缓存位于 ~/.composer/cache(Linux/macOS)或 %APPDATA%\Composer\cache(Windows)。

composer clear-cache 命令到底清什么
composer clear-cache 清的是 Composer 自己下载下来的包压缩包(.zip/.tar.gz)和解压后的临时文件,不是你的 vendor/ 目录,也不是 composer.lock。它只影响后续 install 或 update 时的下载速度和网络行为——缓存命中就跳过下载,没缓存就得重新拉。
- 缓存位置因系统而异:
~/.composer/cache(Linux/macOS)、%APPDATA%\Composer\cache(Windows) - 不会删掉已安装的包,
vendor/完全不受影响 - 如果只是想重装依赖,别只清缓存,还得配合
rm -rf vendor/ && composer install
为什么运行 composer clear-cache 没反应或报错
常见现象是命令执行后光标一闪就结束,或者报 Could not delete... —— 大多因为权限或进程占用。Windows 上尤其容易卡在「正在删除」但实际没删干净。
- 终端没用管理员/root 权限(尤其是 Windows 的 PowerShell/CMD、macOS 的某些 zsh 配置)
- 另一个 Composer 进程正在跑(比如 IDE 内置的终端、后台的
composer update) - 杀毒软件或文件监视工具锁住了缓存目录里的文件
- 缓存路径被自定义过,但命令没识别到:
composer config --global cache-dir可查真实路径
清缓存后 composer install 还是慢?可能根本没清对地方
很多人以为清了缓存就能加速安装,结果发现还是慢——因为 Composer 默认会优先走 packagist.org 的 API,而不是本地缓存;而且如果 composer.json 里用了私有仓库或镜像,缓存行为也会不同。
- 国内用户务必确认是否配置了阿里云或腾讯云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ -
clear-cache不影响已加载的 autoloader,所以不会修复Class not found类加载问题 - 如果项目启用了
COMPOSER_CACHE_DIR环境变量,命令必须在同环境下运行才生效 - CI/CD 流水线中建议显式加
--no-cache而非依赖清缓存,更可控
替代方案:不靠 clear-cache 解决典型缓存问题
很多场景下,硬清缓存不是最优解。比如更新失败、版本解析异常、插件不生效,往往要动的是配置或元数据,不是缓存本身。
- 换源后不生效?先删
~/.composer/auth.json和~/.composer/config.json里旧的 repo 配置项 - 某个包始终装不上老版本?检查
composer.lock是否锁死了版本,或运行composer why-not vendor/package:1.2.3 - 插件(如
hirak/prestissimo)失效?它早就不维护了,新版 Composer 已内置并行下载,直接卸载即可:composer global remove hirak/prestissimo - 怀疑缓存损坏但不想全清?可以手动进
~/.composer/cache/files/找对应包名的子目录删掉
-v 参数),不能只盯着 clear-cache 一个动作。










