Composer怎么清理缓存文件_Composer clear-cache命令详解【维护】

2次阅读

composer clear-cache 仅删除 ~/.composer/cache/(linux/macOS)或 %appDATA%ComposerCache(windows)下的 repo/、files/、vcs/ 三类缓存,不触碰 vendor/、composer.lock、composer.json 及全局配置。

Composer怎么清理缓存文件_Composer clear-cache命令详解【维护】

composer clear-cache 会删掉哪些文件?

它只动 ~/.composer/cache/(Linux/macOS)或 %APPDATA%ComposerCache(Windows)下的三类内容:repo/(包元数据 json)、files/(解压前的 .zip/.tar)、vcs/git 浅克隆缓存)。不会碰 vendor/composer.lockcomposer.json,也不改全局配置。

什么情况下必须用 clear-cache,而不是重装 vendor?

清缓存不是“万能重启键”,只在特定场景真正有效:

  • 执行 composer installFailed to extract xxx: unable to decompress archive,且磁盘空间和权限正常——大概率是某个 .zip 缓存损坏
  • 刚切了国内镜像源(比如从 packagist.org 换成阿里云),但 composer require 仍提示 Package not found——旧源的元数据还卡在 repo/
  • 加了私有仓库到 repositories 并更新了 auth.json,但认证仍失败——部分凭证信息被缓存在 repo/ 的响应中
  • CI 机器上 Could not parse version constraint 偶发出现,重启 job 又好了——元数据缓存解析异常

clear-cache 后为什么 dependency 还是旧的?

因为 composer.lock 会强制锁定版本。清缓存 ≠ 升级依赖。例如你写的是 "monolog/monolog": "^2.0",即使 3.0 已发布,composer update 仍只会装 2.x 最新版。

  • 想升到突破性版本(如 2→3):必须手动改 composer.json
  • 想尝试升到约束范围内最新版:用 composer update --with-all-dependencies
  • 想彻底重来(比如换 php 版本后重建):先 composer clear-cache,再删 composer.lockvendor/,最后 composer install

清理前该确认什么?别盲目跑命令

先看缓存实际占多大,避免白忙活:

  • 查路径:composer config --global cache-dircomposer diagnose(看 Cache Directory 行)
  • 看大小(Linux/macos):du -sh $(composer config --global cache-dir);Windows 可进资源管理器直接看属性
  • 想预览不真删:composer clear-cache --dry-run(部分新版支持,非所有版本)
  • 注意 WSL 用户:别在 Windows 子系统里误删 Linux 的 ~/.composer/cache,路径不互通

企业镜像源(如腾讯云 TKE 镜像)可能自带 http 缓存头 X-Composer-Cache-TTL,本地清完也可能拉到过期元数据——这时得等镜像源 TTL 到期,或临时切回官方源验证。

text=ZqhQzanResources