如何在Mac上彻底删除NPM包?——解决Expo eas-cli无法完全卸载的问题
彻底删除Mac上的eas-cli及NPM包通用方法
我之前也踩过类似的坑——Mac上的全局npm包有时候会藏在各种角落,普通卸载命令根本清不干净。给你一步步解决eas-cli的问题,再附上通用的全局包删除方法:
一、彻底清除eas-cli的步骤
1. 先找到eas-cli的真实位置
终端里输入这两个命令,定位它的踪迹:
which eas ls -l $(which eas)
第一个命令会输出eas命令的可执行路径(比如/usr/local/bin/eas),第二个能看到这个路径是不是软链接,指向的真实文件在哪(比如可能是../lib/node_modules/eas-cli/bin/eas.js)。
2. 删除可执行文件和全局包目录
- 先删掉终端显示的可执行文件:
(如果路径在系统目录下,需要加sudo rm $(which eas)sudo获取权限) - 然后找到npm全局包的根目录,删掉eas-cli的文件夹:
# 先查看全局包路径 npm root -g # 比如输出是/usr/local/lib/node_modules,就执行 sudo rm -rf $(npm root -g)/eas-cli
3. 检查其他包管理器的残留
如果你用过yarn或者pnpm安装过eas-cli,也要对应清理:
- Yarn用户:
yarn global remove eas-cli rm -rf ~/.config/yarn/global/node_modules/eas-cli - PNPM用户:
pnpm remove -g eas-cli rm -rf $(pnpm root -g)/eas-cli
4. 排查shell配置里的别名/自定义路径
有时候你可能在shell配置文件里给eas加过别名,比如~/.zshrc、~/.bash_profile、~/.profile这些文件里,搜一下有没有alias eas=的行,有的话删掉,然后重启终端或者执行source ~/.zshrc(对应你的shell)让配置生效。
5. 检查Expo CLI内置的eas-cli
如果eas-cli是跟着Expo CLI一起装的,可能是Expo的内置工具,这时候可以先卸载Expo CLI再重装(如果需要的话):
npm uninstall -g expo-cli # 要是还需要Expo CLI,再重装 npm install -g expo-cli
6. 验证是否清理干净
重启终端,输入eas --version,如果提示command not found,就说明彻底删干净了。
二、Mac上彻底删除NPM包的通用方法
本地项目包(仅当前项目)
- 常规卸载:直接执行,会自动从
package.json里移除依赖npm uninstall <你的包名> - 清理残留:如果
node_modules里还有残留文件夹,手动删掉,再清理npm缓存:rm -rf node_modules/<你的包名> npm cache clean --force
全局包
- 定位包的位置:用
which <你的包名>找到可执行文件路径,npm root -g找到全局包目录 - 常规卸载:
npm uninstall -g <你的包名> - 手动清理残留:
# 删除全局包目录里的对应文件夹 sudo rm -rf $(npm root -g)/<你的包名> # 删除可执行命令 sudo rm $(which <你的包名>) - 清理缓存:
npm cache clean --force - 检查shell配置:和上面eas-cli的步骤一样,排查有没有别名或者自定义路径指向这个包,有的话删除并重启终端。
特殊情况
- 如果你用yarn/pnpm,替换成对应的全局卸载命令,再清理它们的缓存和全局目录(比如yarn的
~/.config/yarn/global,pnpm的~/.pnpm-global) - 部分工具会在
~/Library/Application Support或者~/Library/Caches里留下配置文件,比如Expo的配置在~/Library/Application Support/expo,如果不需要可以手动删除对应的文件夹。
内容的提问来源于stack exchange,提问作者haibert




