先查真实路径再看大小:运行composer config --global cache-dir确认当前生效缓存路径(如/data/composer-cache),再用du -sh "$(composer config --global cache-dir)"(linux/macos)或粘贴该路径到资源管理器查看属性(windows);超1.5 gb且半年未用才需清理,尤其注意vcs/子目录常占300–800 mb且clear-cache不清理它。

先查真实路径,再看大小——别直接用默认路径猜。很多人执行 du -sh ~/.composer/cache 发现结果是 0 或远小于预期,是因为 Composer 实际缓存路径可能被 COMPOSER_CACHE_DIR 环境变量、公司镜像配置或手动改写覆盖了。
怎么确认 Composer 当前正在用的缓存路径
运行这条命令,输出的就是它真正在读写的目录:
composer config --global cache-dir
注意:--global 是必须的,不加可能返回项目级配置;输出路径里不含 ~ 符号,比如可能是 /data/composer-cache 或 C:\Users\Alice\AppData\Roaming\Composer\Cache。
Linux/macOS 下快速看缓存总大小
把上面命令的结果直接传给 du:
du -sh $(composer config --global cache-dir)
如果提示 command substitution: ignored null byte in input,说明路径含空格或特殊字符,改用:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
du -sh "$(composer config --global cache-dir)"
- 不到 200 MB 基本不用管
- 超 1.5 GB 且半年没碰老项目,才值得清理或迁移
- 若输出
0B或cache directory does not exist,说明缓存目录为空或根本没被写入过
Windows 下查看缓存大小的正确姿势
别打开资源管理器随便点进 %APPDATA%\Composer\Cache ——这个路径可能不是当前生效的。请先运行:
composer config --global cache-dir
把输出结果(比如 %LOCALAPPDATA%\Composer\Cache)完整粘贴到资源管理器地址栏,按回车,然后右键 → “属性” → 看“大小”。
- 如果显示“0 字节”,但磁盘告警严重,大概率是
vendor/占了空间,不是缓存 - 如果显示几百 MB,但你记得装过 Laravel/Symfony 全量包,那很可能是
vcs/目录没被统计进去——du和“属性”都只算目录本身,而 Git 裸仓库的 inode 占用有时不会反映在常规大小里
为什么 du -sh 和资源管理器显示的数字经常对不上
这不是 bug,是底层机制差异:
-
du -sh统计的是实际占用的磁盘块(block),含稀疏文件、硬链接等影响 - Windows “属性” 显示的是“大小”(逻辑字节数)和“占用空间”(物理块),后者更接近
du的结果 -
vcs/目录下每个 Git 裸仓库自带 packed-refs、objects/pack/ 等结构,某些 pack 文件被 mmap 锁住时,du可能漏计部分 block - 杀毒软件或 IDE 正在扫描缓存目录时,也可能导致大小读取延迟或不准
真正要判断是否该动手,盯住 $(composer config --global cache-dir)/vcs/ 这个子目录——它不参与 composer clear-cache,却常占 300–800 MB,且容易耗尽 inode。










