Composer缓存默认位于用户主目录下的composer/cache子目录,各平台路径不同;推荐用composer clear-cache命令安全清理,避免直接删除文件夹,清理后首次安装或更新会变慢但功能正常。

Composer 报 disk space quota exceeded 或卡在 Downloading... 阶段,大概率不是磁盘真满了,而是它的临时目录或缓存占用了大量空间,且 Composer 默认不自动清理旧缓存。
Composer 的缓存目录在哪?为什么它会越积越多
Composer 默认把包下载后的 ZIP 和解压后的代码缓存在本地,路径是:COMPOSER_HOME 环境变量指定的目录下的 cache 子目录。Windows 默认是 %APPDATA%\Composer\cache,Linux/macOS 通常是 ~/.composer/cache。
每次 composer install 或 composer update 都可能拉取新版本,但旧版本缓存不会自动删除——哪怕你已经切换到另一个分支、换了个项目、甚至删了整个 vendor 目录,缓存还在那儿占着空间。
- 一个 Laravel 项目全量更新后,缓存可能暴涨 2–5 GB
- 多个 PHP 项目共用同一缓存目录时,冗余更严重
-
cache下的files(ZIP 包)和repo(元数据)都可安全清理,只要没在执行composer命令
快速清理 Composer 缓存:别手敲 rm -rf
用 Composer 自带命令最稳妥,它会跳过正在被占用的文件,也不会误删配置:
composer clear-cache
执行后你会看到类似输出:Clearing cache (1.2 GiB)。这个数字就是你立刻能腾出的空间。
如果提示 Cache directory does not exist,说明缓存路径异常或被手动改过,可以加 -v 查看实际路径:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer config --global --list | grep cache
常见问题:
- 权限不足导致清理失败 → 用管理员终端(Windows)或
sudo composer clear-cache(Linux/macOS) - 清理后仍报空间不足 → 检查
COMPOSER_HOME是否指向了小容量分区(比如 C:\Users\xxx\AppData\Roaming\Composer 在 C 盘,而 D 盘空着) - 想换缓存位置 → 运行
composer config --global cache-dir "D:\composer-cache"
临时目录(sys_get_temp_dir())也被 Composer 重度使用
Composer 解压 ZIP、生成 autoloader、运行脚本时,都会用系统临时目录。PHP 的 sys_get_temp_dir() 返回的路径,在 Windows 上通常是 C:\Users\用户名\AppData\Local\Temp,Linux/macOS 是 /tmp 或 $TMPDIR。
这个目录容易被忽略,但它可能堆积大量未清理的 composer_*.zip、php*.phar 临时文件,尤其在频繁 composer create-project 或 CI 环境中。
- Windows:按
Win+R输入%temp%回车,全选 → 删除(跳过“正在使用”的) - Linux/macOS:运行
find /tmp -name "composer_*" -type f -mtime +1 -delete(只删 1 天前的) - CI 环境建议在构建脚本末尾加
composer clear-cache && rm -rf $(sys_get_temp_dir)/composer_*
清理后仍爆满?重点检查这三处
Composer 只是“症状”,背后常是更底层的磁盘压力:
-
C:\Windows\SoftwareDistribution\Download—— Windows 更新缓存,动辄 10GB+,和 Composer 无关但共用 C 盘 -
%APPDATA%\Local\Microsoft\OneDrive\Staged—— OneDrive 同步暂存区,可能卡住大文件不释放 -
~/.cache/composer(Linux/macOS)和%APPDATA%\Composer\cache(Windows)是否被软链接到小分区?用ls -la或dir确认真实路径
真正危险的是把 clear-cache 当万能药——它不解决缓存路径本身所在分区空间不足的问题,也不清理项目级的 vendor 或 node_modules。先确认磁盘真实可用空间,再决定是清缓存、挪路径,还是扩容分区。

















