Composer如何查看本地缓存列表_Composer查看已下载包缓存【常用】

2次阅读

composer cache-dir 命令显示缓存根目录,如 /home/user/.composer/cache;缓存分 repo(元数据jsON)和 files(dist压缩包)两个关键子目录,archives 已弃用;清理需用 composer clear-cache 或手动删 files 中指定包,删 repo 会影响元数据更新。

Composer如何查看本地缓存列表_Composer查看已下载包缓存【常用】

composer show –installed 不能查缓存,得用 composer cache-dir

composer show --installed 只显示当前项目已安装的包,和本地缓存无关。真正查缓存位置和内容,得先知道缓存根目录在哪。composer cache-dir 命令直接输出 Composer 当前使用的缓存路径,比如:

/home/user/.composer/cache

C:UsersNameappDataLocalComposercache

。这个路径是后续所有操作的基础,别跳过这步。

进缓存目录后看什么:重点盯 repofiles 两个子目录

缓存目录下通常有 repofilesarchives 等子目录:

  • repo 存的是 Packagist 元数据快照(json),比如 packagist.org%24packages.json,体积小但决定你能搜到哪些包
  • files 存的是已下载的 dist 包压缩包(.zip/.tar.gz),文件名含哈希值,比如 monolog/monolog/9a1e65d784c06b59715ac4f268af728b.zip
  • archives 是旧版 Composer(

直接 ls -l files/dir files 就能看到有哪些包被缓存过,大小也一目了然。

想批量清理或筛选缓存?用 composer clear-cache + 条件判断

composer clear-cache 是最安全的全量清理方式,执行后会清空整个缓存并提示新路径。但它不支持按包名过滤。如果只想删某个包的缓存:

  • 手动进 files/ 目录,用 find . -name "package-name"linux/macOS)或 dir /s package-namewindows)定位
  • 注意:删了 files 里的压缩包,下次 install/update 时仍会重下;但删了 repo 里的 JSON,首次运行 composer update 会重新拉元数据,可能稍慢
  • 不建议直接删 repo/packagist.org 整个目录,会导致所有包信息丢失,等效于首次使用 Composer

缓存是否生效,看 composer install 日志里的 Downloading 还是 using version x.x.x

安装依赖时,留意终端输出:

  • 如果看到 Downloading https://www.php.cn/link/5cf804803360a972e4d810f6bd181881...Downloading https://www.php.cn/link/52ec1c0cc952d63a8bda67ff969b6968...,说明没走缓存(可能是元数据过期或网络强制刷新)
  • 如果看到 Using version ^2.0 for monolog/monolog + Installing monolog/monolog (2.0.0) 且没提 “Downloading”,大概率是从 files 缓存解压的
  • 启用 -v 参数(composer install -v)能显示更细的日志,包括缓存命中路径,比如:
    Writing /home/user/.composer/cache/files/monolog/monolog/9a1e65d784c06b59715ac4f268af728b.zip into cache

缓存行为受 COMPOSER_CACHE_DIR 环境变量config.cache-dir 配置和 --no-cache 参数影响,排查时优先确认这三项有没有被意外覆盖。

text=ZqhQzanResources