0

0

Composer clear-cache与clear-cache --gc的区别及使用场景

冰火之心

冰火之心

发布时间:2026-01-04 17:26:02

|

746人浏览过

|

来源于php中文网

原创

composer clear-cache 一次性清除全部本地缓存,包括archives、files、远程元数据及checksum;不支持--gc参数,仅提供全量清除或按archives/files分类型清理。

composer clear-cache与clear-cache --gc的区别及使用场景

composer clear-cache 是什么,它到底清了哪些东西?

composer clear-cache 是 Composer 官方提供的缓存清理命令,它会**一次性删除所有本地缓存内容**:包括已下载的 .zip/.tar 包归档(archives)、解压后的临时文件(files)、远程仓库元数据(如 packages.json、版本列表)、以及 checksum 校验信息。它不区分“过期”或“正在用”,全部清空。

执行后你会看到类似输出:

Clearing cache (C:\Users\Alice\AppData\Local\Composer\cache)
Cache directory cleared.

该命令适用于以下典型场景:

  • 切换镜像源(如从 packagist.org 改为阿里云镜像)后仍拉不到新版包
  • composer require foo/barNo matching package found,但确认包名和版本完全正确
  • 反复 install 却总解压出旧版代码,或提示 corrupted archive / checksum mismatch
  • 刚删了 vendor 重装,问题依旧复现——说明不是项目级问题,而是全局缓存污染

composer clear-cache --gc 并不存在

Composer **没有内置 --gc 参数**,也**不支持 composer clear-cache --gc 这种写法**。这是常见误解,可能源于对 Node.jsnpm cache clean --force 或 Go 的 go clean -cache 的混淆,或误读某些非官方文档/博客的笔误。

运行该命令会得到明确报错:

[InvalidArgumentException]
  Command "clear-cache" is not defined.
  Did you mean one of these?
      clear-cache
      dump-autoload

或者(如果拼写正确但参数非法):

[RuntimeException]
  The "--gc" option does not exist.

也就是说:Composer 不提供“垃圾回收式渐进清理”机制,它只有“全量清除”(clear-cache)和“按类型拆分清除”(见下一条)两种粒度。

WPS灵犀
WPS灵犀

WPS灵犀是WPS推出的一款AI智能办公和学习助手

下载

替代方案:按需清理 archives 或 files

虽然没有 --gc,但 Composer 自 2.2+ 起支持**分类型清理**,更接近“精准回收”的意图:

  • composer clear-cache archives —— 只删 .zip/.tar 等原始包文件(占空间最大,常达几百 MB)
  • composer clear-cache files —— 只删解压后用于安装的临时目录(如 vendor/composer/xxx/ 类结构的缓存副本)

例如,你发现磁盘快满了,但不想重下所有包元数据(避免后续 update 拉取缓慢),就可以只执行:

composer clear-cache archives

这比全量 clear-cache 更轻量,也避免了因元数据缓存丢失导致的首次 update 卡顿。

什么时候该手动删 cache 目录?

极少数情况下,composer clear-cache 命令本身失效(比如权限错误、缓存目录被其他进程锁定、或 Composer 自身损坏),这时可手动清理:

  • 先查路径:composer config cache-dir
  • Linux/macOS:rm -rf ~/.composer/cache/*
  • Windows:del /s /q "%LOCALAPPDATA%\Composer\cache"(注意不是 %APPDATA%,新版 Composer 默认用 %LOCALAPPDATA%

⚠️ 注意:手动删除后,Composer 下次运行会自动重建目录结构,但不会自动恢复旧缓存——这点和 clear-cache 效果一致。真正容易被忽略的是:缓存清理不影响 composer.jsonvendor 或锁文件,但它会让下一次 install 变慢,因为所有包都要重新下载

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

148

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

405

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

531

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

308

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

462

2023.11.27

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

510

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

244

2023.07.28

免费看漫画app合集_2026免费漫画app排行榜入口
免费看漫画app合集_2026免费漫画app排行榜入口

2026年免费漫画APP合集来啦!为你精心整理最新免费漫画APP排行榜入口,涵盖漫蛙漫画、香香漫画、包子漫画等热门神器,海量正版国漫、日漫、韩漫资源全免费阅读,无需付费解锁章节!高清全彩画质、每日极速更新,支持离线下载、智能推荐、条漫阅读模式,热血、恋爱、悬疑、古风、搞笑等题材应有尽有。无论你是追新番老粉还是小白漫迷,这里都能让你一站式追漫到爽,告别广告干扰和会员套路!赶紧点击入口下载体验,开启2026无限免费漫画之旅吧!

8

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.7万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号