You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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
    

全局包

  1. 定位包的位置:用which <你的包名>找到可执行文件路径,npm root -g找到全局包目录
  2. 常规卸载:
    npm uninstall -g <你的包名>
    
  3. 手动清理残留:
    # 删除全局包目录里的对应文件夹
    sudo rm -rf $(npm root -g)/<你的包名>
    # 删除可执行命令
    sudo rm $(which <你的包名>)
    
  4. 清理缓存:
    npm cache clean --force
    
  5. 检查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

火山引擎 最新活动