composer clear-cache 不清 vcs/ 目录因其默认跳过该路径;vcs/ 存 git 裸仓库,单个包达300–800mb;需手动禁用 cache.vcs 并删除残留目录。

composer clear-cache 为什么清不掉 vcs/ 目录
因为 composer clear-cache 默认跳过 cache/vcs/ —— 它存的是 Git 裸仓库(完整 .git),每个 Laravel 或 Symfony 包克隆一次就占 300–800 MB、上万个文件,是磁盘和 inode 双杀。哪怕你执行了十遍 clear-cache,vcs/ 里的东西纹丝不动。
必须手动处理:
- 先禁用:运行
composer config --global cache.vcs false - 再删残留:
rm -rf ~/.composer/cache/vcs/(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows) - 副作用仅限首次
composer update稍慢(改走--prefer-dist),但彻底规避裸仓库再生
镜像源切换后必须立刻 clear-cache,否则缓存错乱
没换源前,Composer 默认从 packagist.org 拉 packages.json,即使本地有缓存,也会频繁回源校验哈希;一旦切到阿里云镜像(如 https://mirrors.aliyun.com/composer/),元数据结构一致但响应更快、更稳定,clear-cache 才能真正清掉旧源残留的失效 ZIP 和过期 repo 快照。
关键点:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 配置命令必须完整:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,漏掉中间的composer或末尾/都会静默失效 - 验证是否生效:
composer config -g repo.packagist输出应为纯 URL 字符串,不含packagist.org - 换源后不立刻
clear-cache,旧缓存仍会干扰后续安装逻辑,比如composer install卡在Loading composer repositories
packages.json 缓存滞后,composer update --refresh 是唯一解
Composer 本地复用 packages.json 缓存(15 分钟内不过期),根本不去镜像站拉新索引——哪怕阿里云镜像上已有 monolog/monolog:v3.6.0,你本地还在按旧列表算版本。
composer update --refresh(≥2.5)专为此设计:
- 只丢弃
~/.composer/cache/repo/https---mirrors-aliyun-com-composer/packages.json和所有provider-*.json - 不删 ZIP 包、不重建 lock 文件、不重装已安装包
- 强制从当前生效镜像源重新下载最新元数据
- 若 Composer ≤ 2.4,则该参数不存在,需手动删缓存:
rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer
cache-files-ttl 不是“过期包”,只是“过期时间戳”
composer clear-cache --expired 只检查 cache/files/ 下 ZIP/TAR 文件的修改时间(mtime)是否超过 cache-files-ttl(默认 180 天),它不验证内容哈希、不看是否被项目引用、也不动 vcs/ 和 repo/ 目录。
所以:
- 如果缓存里全是近三个月下载的包,
--expired很可能显示 “Cleared 0 files” —— 不是命令失效,是真没过期 - 查 TTL 值:
composer config --global cache-files-ttl,若无输出即用默认 180 天 - 想清旧 ZIP,又不想等 180 天?直接用 find:
find ~/.composer/cache/files -name "*.zip" -mtime +90 -delete
vcs/ 的裸仓库、files/ 的 ZIP 包、以及 sys_get_temp_dir() 里堆积的 composer_*.zip —— 这三处不盯紧,光调镜像等于白忙。










