清理composer中文镜像残留需三步:先彻底删除repositories配置并清空cache/repo/packagist.org元数据,再处理vendor中因--prefer-dist下载的冗余dist包,最后排查全局配置中空对象或ide等工具静默写入的镜像项。

清理 Composer 中文镜像环境下的残留文件,核心不是“清缓存”就完事——真正卡住你的,往往是删了配置却没清元数据、清了缓存却还走 fallback 镜像、或者 vendor 里混着旧镜像源下载的未裁剪 dist 包。下面分三块说清楚怎么做、为什么这么干、以及哪里最容易翻车。
删完 repositories 配置后还走镜像?检查 fallback 和 cache/repo/
Composer 2.2+ 默认启用 packagist.org 的 fallback 行为:即使你已 unset repositories.packagist.org,只要主源响应慢,它仍会悄悄切到镜像地址(比如阿里云或腾讯云)。这不是 bug,是设计行为。
- 运行
composer config --global --unset repositories.packagist.org后,再执行composer config --global repositories确认输出为空 - 然后必须清掉
~/.composer/cache/repo/packagist.org/目录(或 Windows 下对应路径),否则旧镜像的packages.json元数据还在,composer update仍可能读错 - 验证是否生效:运行
composer diagnose,看 “Repo packagist.org” 是否显示为https://packagist.org,且无 warning 提示“overridden by repository config”
缓存清了但 vendor 体积还是大?重点扫 files/ 和 archive.excludes
中文镜像源本身不增大 vendor,但国内用户常搭配 --prefer-dist 安装,而很多包(如 overtrue/wechat)的 GitHub Release ZIP 未声明 archive.excludes,导致 tests/docs/examples 全被打进 dist 包。缓存里留着这些 ZIP,vendor 就永远臃肿。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先确认缓存真实大小:
du -sh $(composer config --global cache-dir);如果files/子目录占 >1GB,说明积压大量旧版 ZIP - 安全清理旧 ZIP:
find ~/.composer/cache/files -name "*.zip" -mtime +90 -delete(只删 90 天前的,保留近期常用包) - 检查项目
composer.json是否有"archive": {"excludes": ["/tests", "/docs", "/examples"]};没有就手动加,下次install --prefer-dist才能跳过冗余文件
全局配置残留空对象或静默写入?用 grep 快速扫描
很多人删了 repositories 字段,却留下 "repositories": {} 或空数组,Composer 不报错,但后续 composer config --global repositories 会误判为“已配置”,导致命令失效。更隐蔽的是 IDE 插件或 composer-proxy 工具会静默写入镜像配置。
- 手动打开
~/.composer/config.json(Windows 是%APPDATA%\Composer\config.json),删掉整个repositorieskey,包括冒号和花括号,不要留空对象 - 运行
composer config --global --list | grep -i "mirror\|aliyun\|tencent",快速揪出被工具悄悄加进去的异常项 - 若发现
repositories下有非packagist.org的 key(比如packagist.phpcomposer.com),用composer config --global --unset repositories.phpcomposer.com精准删除
最易被忽略的一点:删完所有配置和缓存后,第一次 composer install 会重新拉全量元数据和 ZIP,如果网络不稳定,可能卡在某个大包上(比如 laravel/ui 的 15MB ZIP)——这不是失败,是重载过程。别中途 Ctrl+C,等它跑完,后续就干净了。










