如何完全卸载 Node.js,并从头开始重新安装 (Mac OS X)

IT技术 javascript node.js npm
2021-01-09 23:21:01

即使在我安装了 brew node 和 NVM 安装 v0.6.19 之后,我的 node 版本也始终是 v0.6.1-pre。

我的节点版本是:

node -v
v0.6.1-pre

NVM 是这样说的(在我第一次在一个 bash 终端中安装一个 node 版本之后):

nvm ls
v0.6.19
current:    v0.6.19

但是当我重新启动 bash 时,我看到的是:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

那么这个 phantom node 0.6.1-pre 版本在哪里,我该如何摆脱它?我正在尝试通过 NPM 安装库,以便我可以处理项目。

我尝试在 NVM 之前使用 BREW 进行更新,使用brew updatebrew install node我已经尝试删除我的“节点”目录/usr/local/include以及我的/usr/local/lib. 我已经尝试按照这些说明卸载 npm 并重新安装它

所有这一切都是因为我试图更新旧版本的节点以安装“zipstream”库。现在我的用户目录中有文件夹,节点版本仍然不是最新的,即使 NVM 说它使用的是 0.6.19。

理想情况下,我想卸载 nodejs、npm 和 nvm,然后在我的系统上从头开始重新安装整个东西。

6个回答

显然,有一个/Users/myusername/local包含文件夹includenodelibnodenode_modules/usr/local我不知道这是如何以及为什么在我的文件夹中而不是在我的文件夹中创建的

删除这些本地引用修复了 phantom v0.6.1-pre。如果有人有解释,我会选择它作为正确答案。

编辑:

您可能还需要执行其他说明:

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

这相当于(同上)...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

或(同上)分解...

要完全卸载 node + npm 是执行以下操作:

  1. 转到/usr/local/lib并删除任何节点node_modules
  2. 转到/usr/local/include并删除任何节点node_modules目录
  3. 如果您使用brew install node 安装,则在终端中运行brew uninstall node
  4. 检查您的主目录中是否有任何本地lib包含文件夹,并从那里删除任何节点node_modules
  5. 转到/usr/local/bin并删除任何节点可执行文件

您可能还需要执行以下操作:

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

此外,NVM 修改了 PATH 变量$HOME/.bashrc,必须手动恢复

然后下载nvm并按照说明安装 node。我相信最新版本的 node 带有npm,但您也可以重新安装它。

还需要删除 /Users/[homedir]/.nvm
2021-03-12 23:21:01
我拼凑了一个脚本,我现在已经进行了实战测试。谢谢@DominicTancredi 这很好用!gist.github.com/brock/5b1b70590e1171c4ab54
2021-03-25 23:21:01
我还必须补充:sudo rm -rf ~/.node-gyp在我切换到 brew 之前,我已经用 MacPorts 添加了它。
2021-04-04 23:21:01
我也不得不rm -rf /Users/[homedir]/.npm
2021-04-06 23:21:01
我还跑了brew doctor然后brew prune清理了一堆 NPM 损坏的符号链接。
2021-04-06 23:21:01

对于 brew 用户,OSX

去除:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

安装:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

您可以运行brew info node以获取有关节点安装的更多详细信息。


考虑使用 NVM 而不是 brew

NVM(节点版本管理器)是一个可移植的解决方案,用于管理节点的多个版本

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

当您在具有不同节点依赖项的不同项目之间跳转时,您可以将其与 AVN一起使用以自动切换版本。

使用 NVM 有所帮助。
2021-03-11 23:21:01
-bash: /usr/local/bin/npm: No such file or directory 我现在能做什么?
2021-03-15 23:21:01
如何设置 env vars 以便在安装后可以使用 node 和 npm?
2021-03-26 23:21:01
您可能需要使用该--force标志运行 brew 以确保删除所有版本的节点: $ brew uninstall --force node
2021-04-05 23:21:01
> “考虑使用 NVM 代替 brew”;具有讽刺意味的是,您可以使用brew!安装 NVM 很棒的提示,谢谢。
2021-04-07 23:21:01

我知道这篇文章有点过时,但只是想分享删除 Node.js 时在终端中对我有用的命令。

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
 
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

更新: 23 SEP 2016


如果你害怕运行这些命令......

感谢jguix提供了这个快速教程

首先,创建一个中间文件:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

手动查看您的文件(位于您的Home文件夹中)

 ~/filelist.txt

然后删除文件:

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

对于 10.10.5 及以上

感谢Lenar Hoyt

要点评论来源: gistcomment-1572198

原始要点: TonyMtz/d75101d9bdf764c890ef

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
哇——这太可怕了。至少第一个“rm”不是“rm -rf”,如果 sbom 的输出有一个空行,它将删除所有 /usr/local。在做任何如此粗暴的事情之前,请仔细检查 sbom 输出以及所有这些目录的来源,并确保您确切地知道要删除的内容。
2021-03-23 23:21:01
我应该补充一点......如果你有一个健康的自我保护本能,你应该很难输入或复制粘贴以“sudo rm -rf /”开头的第二个命令。一个喷嚏,或者猫跳到你的键盘上,你就破坏了你的文件系统。
2021-03-30 23:21:01
org.nodejs.node.pkg.bom而不是org.nodejs.pkg.bom.
2021-04-03 23:21:01
lsbom 命令输出相对路径,因此脚本试图删除看起来像/usr/local/./node/yada. 要删除./我使用剪切过滤器前缀: lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
2021-04-04 23:21:01
@DonHatch 复制没有第一个字母的行,因此它以开头,udo..然后s在运行之前添加。
2021-04-05 23:21:01

在 Mavericks 上,我从节点 pkg(来自 nodejs 站点)安装它并卸载它,以便我可以使用 brew 重新安装。我只在终端中运行 4 个命令:

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

如果还有node安装,重复步骤2。 一切OK后,我安装使用 brew install node

1 有效,但 2 失败。我得到“没有这样的桶:usr/local/Cellar/node”
2021-03-12 23:21:01
我试过了,但再次得到同样的错误错误:brew link步骤没有成功完成
2021-03-21 23:21:01
是的,如果您正在运行小牛队,这是最好的
2021-03-27 23:21:01
谢谢,完美,除了我必须添加 --force 来 brew uninstall
2021-04-02 23:21:01
仅供参考:在撰写本文时 - ->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
2021-04-05 23:21:01

我已经总结了现有的答案,并确保 Node.js与 NPM 一起完全删除

复制到终端的行:

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;
我遵循了这些步骤,它似乎奏效了。我仍然有目录在我的根文件夹一样.node-gyp/.npm/.npm-global/,和.nvm/如果我打算重新安装节点,我可以删除它们还是应该保留它们?
2021-03-22 23:21:01
在所有事情中,您可能想要删除 /node-gyp/
2021-03-30 23:21:01