先确认 Composer 全局状态:运行 composer config -g --list、composer global show 和 composer config --list 查清全局配置、全局包及项目覆盖设置;备份 composer.json 和 composer.lock;区分清理 ~/.composer/vendor/、cache/(files/vcs)和 composer.lock;检查 shell alias 或 function 是否覆盖 composer 命令。

确认当前 Composer 全局状态再动手
直接删配置或缓存前,先搞清你面对的是什么——全局配置、项目级锁文件、还是插件 ZIP 残留。运行 composer config -g --list 和 composer global show,分别看全局配置项和已安装的全局包列表;再用 composer config --list(不加 -g)检查当前项目是否覆盖了源或仓库设置。这些输出是后续清理的基准线,别跳过。
备份 composer.json 和 composer.lock 是刚需
哪怕只是清理全局包,也建议先备份项目根目录下的 composer.json 和 composer.lock——因为某些操作(比如误执行 composer update 或全局 dump-autoload)可能意外触发项目级 autoload 重建,间接污染锁文件。简单执行:
cp composer.json composer.json.bak<br>cp composer.lock composer.lock.bakLinux/macOS 用户可加时间戳:
cp composer.json composer.json.bak.$(date +%s)。Windows 用户用 copy composer.json composer.json.bak 即可。全局 vendor 和 cache 目录要分开处理
全局残留常混在 ~/.composer/vendor/(代码)、~/.composer/cache/(ZIP 和 VCS)、~/.composer/composer.lock(元数据)三处,它们作用不同,不能一删了之:
• cache/files/ 下损坏 ZIP 必须精准删除,删整个 cache/ 可能拖慢下次重装
• cache/vcs/ 可整删,不影响插件安装,但删了会重拉 Git 仓库
• vendor/ 下目录和 autoload_*.php 必须同步清理,否则 composer global dump-autoload 仍会加载旧路径
• composer.lock 是全局依赖快照,删它等于重置所有全局包状态,务必先备份
别信 type composer 就完事,alias 和 function 得手动翻
运行 type composer 返回 composer is hashed 并不表示没干扰——shell 可能缓存了路径,也可能存在 alias 或函数覆盖。检查 ~/.bashrc、~/.zshrc、~/.profile 里有没有 alias composer= 或 function composer {。Windows 用户查 %USERPROFILE%\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 或 CMD 的 autoexec.bat(极少见)。漏掉这个,清理完照样走错命令。


















