composer clear-cache不能精准清理旧版本,它全量清空缓存(files/repo/vcs),不区分是否被项目引用;要删特定旧版包(如monolog/monolog 1.20.0),须手动进入~/.composer/cache/files/定位并删除对应zip文件,同时可安全清空vcs/目录。
直接执行
不能精准清理“旧版本”,它清的是全部缓存;真要删旧版包(比如
的 1.20.0 而非 2.4.0),必须手动进
筛选删除。
为什么
不等于“删旧版”
这个命令本质是全量清空:它不管某个包版本是否还在
里被引用,只要在缓存目录下,就一并删除。它不区分“旧”和“新”,只区分“存在”和“损坏/过期”。所以你清完后装包变慢,不是因为留了旧版,而是所有 dist 包都得重下。
更误导人——它只动
下未被
引用的目录,完全不碰缓存里的 zip 或 source
所谓“旧版本包缓存”,实际指
这类文件,Composer 没提供按版本号过滤的参数
如果你有多个项目,且各自
引用不同版本,那“旧版”其实是相对的——删错一个,某个老项目
就会重新下载,甚至因网络问题失败
怎么安全手动删旧版包(Linux/macOS)
先确认路径:
,再进
子目录操作。别直接删整个
,只删确定不用的版本。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
查当前项目用的版本:
查所有项目汇总的版本:用
删指定旧版 zip:
可放心整删:
,下次需要时自动重建,不影响功能
Windows 用户删旧版要注意什么
资源管理器不显示完整哈希路径,手动删容易出错。推荐用 PowerShell 配合
定位:
先查缓存路径:
,通常返回
进
后用:
确认目标
删前加
预览:
避免用资源管理器直接删
下的
——删了首次
会卡在 HTTP 请求,尤其国内镜像源 TTL 长
真正吃磁盘的是
,不是缓存
一个 Laravel 项目
常超 300MB,而
通常不到 1GB。如果 C 盘告警,先跑:
(Linux/macOS)或用
(Windows)扫
,而不是急着清缓存。
对释放 C 盘空间效果有限,除非你缓存目录真被配到了 C 盘(比如
)
更有效的方式是定期
,前提是
存在且可信
CI 环境中,
比反复清缓存更省空间、更稳定
composer clear-cachemonolog/monolog~/.composer/cache/files/composer clear-cachecomposer.lockcomposer gcvendor/composer.lock~/.composer/cache/files/vendor/name/hash/version.zipcomposer.lockcomposer installcomposer config --global cache-dirfiles/files/grep -A 5 '"monolog/monolog"' composer.lock | grep versionfind /path/to/projects -name composer.lock -exec grep -l 'monolog/monolog' {} \; -exec grep -A 5 '"monolog/monolog"' {} \; | grep version | sort -ufind ~/.composer/cache/files -name "monolog-monolog-1.20.0.zip" -deletecache/vcs/rm -rf ~/.composer/cache/vcs/*Get-ChildItemcomposer config --global cache-dir%APPDATA%\Composer\Cachefiles\Get-ChildItem -Recurse -Filter "*monolog*1.20.0*.zip"-WhatIfGet-ChildItem -Recurse -Filter "*monolog*1.20.0*.zip" | Remove-Item -WhatIfrepo\packages.jsoncomposer updatevendor/vendor/~/.composer/cache/du -sh vendor/* | sort -hr | head -3TreeSize Freevendor/composer clear-cacheCOMPOSER_HOME=C:\Users\Me\.composerrm -rf vendor && composer install --no-devcomposer.lockcomposer install --no-cache