Composer 不支持按包名清理缓存,仅提供全量清除;精准清理需手动进入 cache-dir/files 目录,用 find 定位并删除对应 vendor-name-version-hash.zip 文件。

composer clear-cache 不能按包名清理,这是设计限制
Composer 没有提供 composer clear-cache --package vendor/name 或类似参数。所有官方文档和源码都确认:它只支持全量清除 files/、repo/、vcs/ 三个子目录,不接受过滤条件。所谓“精准清某个包”,只能靠你手动进缓存目录识别并删除对应文件。
手动定位并删除特定包的 .zip 缓存文件
大部分空间占用来自 files/ 目录下的归档包,它们按 vendor-name-version-hash.zip 命名。你可以用文件名或修改时间辅助判断:
- 先查路径:
composer config --global cache-dir(通常为~/.composer/cache) - 进入:
cd $(composer config --global cache-dir)/files - 找某包(如
monolog/monolog)的 zip:find . -name "*monolog*monolog*" -name "*.zip" - 删 180 天前的旧版:
find . -name "*monolog*monolog*" -name "*.zip" -mtime +180 -delete - 注意:不要在
find后直接加-exec rm而不先预览,避免误删
别碰 repo/ 下的 packagist.org 目录
这个目录存的是整个 Packagist 的元数据快照(packages.json),删了会导致下次 composer update 首次拉取极慢,且无法加速“特定包”更新——它影响的是全量索引,不是单个包。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
repo/packagist.org/:建议保留,除非你明确知道要重刷全部元数据 -
repo/github.com/或私有源目录:可删,但同样不解决“只清某包”的需求 - 真正影响单个包更新的,是
files/里的 zip 和vcs/里的裸仓库,不是repo/
清完仍装不到新版?问题大概率不在缓存
如果你删了 monolog/monolog 的 zip,但 composer install 还是装旧版,那是因为:
-
composer.lock文件锁定了版本,和缓存无关 - 镜像源 CDN 缓存未刷新(
clear-cache不触达服务器端) - 私有包改了 tag 却没推新 commit,Composer 复用本地解压结果,根本不会查远程
- 想强制升版:
composer update monolog/monolog --no-cache(跳过本次缓存读写)
真正容易被忽略的是:缓存路径可能被 COMPOSER_CACHE_DIR 环境变量覆盖,或挂载在 NFS 上,clear-cache 只清 composer config --global cache-dir 返回的那个路径,不会自动遍历其他位置。

















