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

How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)

提问人:Dominic Tancredi 提问时间:6/24/2012 最后编辑:Kamil KiełczewskiDominic Tancredi 更新时间:11/21/2023 访问量:2716024

问:

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

我的节点版本是:

node -v
v0.6.1-pre

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

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)

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

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

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

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

JavaScript 节点.js npm

评论

3赞 Pacerier 11/3/2017
github.com/nodejs/node/issues/7371#issuecomment-341530174gist.github.com/dotcomputercraft/b7283bd52f4b5389e748stackabuse.com/how-to-uninstall-node-js-from-mac-osx
0赞 Aaron Blenkush 1/19/2018
/usr/bin/node 是另一个......
2赞 karthikeayan 7/2/2018
这可能对通过PKG文件安装节点的人有所帮助。superuser.com/questions/36567/......
0赞 vikramvi 10/29/2018
Mac 10.13.5 有 /Users/myusername/node_modules我也应该删除这个文件夹吗?我在这个线程中搜索过,但似乎没有人遇到这个问题
0赞 vikramvi 7/22/2019
@Pacerier即使在遵循 gist 中的说明之后,Mac OS 10.13.5 上仍然存在 node 和 npm

答:

1990赞 Dominic Tancredi 6/24/2012 #1

显然,有一个文件夹包含 with 和 with 和 。我不知道这是如何以及为什么创建的,而不是在我的文件夹中。/Users/myusername/localincludenodelibnodenode_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,但您也可以重新安装它。

评论

111赞 Lou Groshek 4/19/2014
我也不得不.rm -rf /Users/[homedir]/.npm
25赞 7/23/2014
还需要删除/Users/[homedir]/.nvm
53赞 Chris Jacob 9/2/2014
我还跑了,然后清理了一堆损坏的 NPM 符号链接。brew doctorbrew prune
60赞 brock 9/13/2014
我拼凑了一个脚本,现在已经进行了实战测试。谢谢@DominicTancredi这效果很好!gist.github.com/brock/5b1b70590e1171c4ab54
18赞 JESii 11/15/2014
我还必须补充:.在我切换到 brew 之前,我已经用 MacPorts 添加了它。sudo rm -rf ~/.node-gyp
6赞 toutpt 8/15/2013 #2

我在 Mac 上卸载 Node.js 时遇到了问题。我有一些奇怪的行为,即使不得不用所有这些删除它,它仍然在那里。npm

这是因为我用 macport 完成了旧的安装。因此,您还必须使用端口卸载它:

sudo port uninstall nodejs

它可能安装了许多不同版本的 Node.js,因此将它们全部卸载(一个接一个)。

评论

1赞 peter_the_oak 2/28/2015
这正是发生在我身上的事情:-)感谢您的附录答案。好吧,我开始拥有多个版本的 Cordova,一个 npm 无法删除一个 Cordova,反之亦然。
177赞 Pedro Polonia 1/18/2014 #3

在 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

如果仍有节点安装,请重复步骤 2。一切正常后,我使用brew install node

评论

60赞 PositiveGuy 2/12/2015
1 个成功,但 2 个失败。我得到“没有这样的桶:usr/local/Cellar/node”
1赞 Dicer 2/22/2017
是的,如果你正在运行小牛队,这是最好的
3赞 Chandni 7/20/2018
我试过了,但再次出现相同的错误错误:该步骤未成功完成brew link
1赞 Medhi 10/22/2018
谢谢,完美,除了我必须添加--force来酿造卸载
2赞 Mike S. 3/30/2019
仅供参考:在撰写本文时——->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
212赞 DaveyJake 7/7/2014 #4

更新:2016 年 9 月 23 日 - Intel Macs 10.11.x 及更高版本

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

感谢 jguix 提供这个快速教程

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

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

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

 ~/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.*

Intel Macs 10.10.x 及更低版本

谢谢 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.*

原版: 2014-07-07

我知道这篇文章有点过时,但只是想分享在删除 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赞 Don Hatch 4/24/2015
哇——这太可怕了。至少第一个“rm”不是“rm -rf”,如果 sbom 的外端有一个空行,它将删除所有 /usr/local。在做任何如此严厉的事情之前,请仔细检查 sbom 输出以及所有这些目录的来源,并确保您确切地知道要删除的内容。
21赞 Don Hatch 4/24/2015
我应该补充一点......如果你有健康的自我保护本能,那么你输入或复制粘贴第二个命令应该是非常困难的,它以“sudo rm -rf /”开头。一个喷嚏,或者猫跳到你的键盘上,你就毁了你的文件系统。
3赞 Lenar Hoyt 10/11/2015
它代替了 .org.nodejs.node.pkg.bomorg.nodejs.pkg.bom
3赞 youurayy 10/6/2017
@DonHatch复制没有第一个字母的行,因此它在运行之前以开头,然后在前面。udo..s
4赞 timiscoding 1/18/2020
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
7赞 swipe 9/20/2014 #5

也许你需要做

hash -r 

它有助于解决符号链接的问题

$ node -v
$ bash: /opt/local/bin/node: No such file or directory
686赞 random-forest-cat 11/14/2014 #6

对于 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 一起使用,以便在具有不同节点依赖项的不同项目之间跳转时自动切换版本。

评论

3赞 Maxim V. Pavlov 9/13/2015
如何设置 env vars 以便 node 和 npm 在此类安装后可用?
14赞 magikMaker 10/6/2015
您可能需要使用该标志运行 brew,以确保删除所有版本的节点:--force$ brew uninstall --force node
7赞 HankCa 5/8/2019
>“考虑使用 NVM 而不是 brew”;具有讽刺意味的是,您可以使用 brew!很棒的提示,谢谢。
5赞 codrp 7/4/2019
使用 NVM 有所帮助。
3赞 Skillz 5/2/2021
在 && 之后,并且仍然返回一个版本running brew uninstall --force nodebrew cleanupnode --versionnpm version
8赞 Carlos Pérez Priego 1/10/2015 #7

除了主要答案之外,我还需要删除在以下位置找到的所有 npm 实例:

rm -rf /usr/local/share/man/man1/npm*

评论

2赞 Edward Anderson 11/21/2017
这应该是对适当答案的评论,而不是新答案。
2赞 pcatre 2/9/2015 #8

这为我修复了它 在 Mac OS X 上为 Homebrew 用户修复 npm。而且它不需要太多步骤。

如果您不关心原因,请转到解决方案部分。

为方便起见,以下是相关部分:

溶液

此解决方案修复了尝试运行 .完成后,您也不需要使用全局安装 npm 模块。npm update npm -gsudo

在开始之前,请记下任何全局安装的 npm 包。这些说明将让你删除所有这些包。完成后,您需要重新安装它们。

运行以下命令以删除所有现有的全局 npm 模块,卸载 node 和 npm,使用正确的默认值重新安装节点,配置要安装的全局 npm 模块的位置,然后将 npm 安装为自己的包。

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

此时应该正确安装 Node 和 npm。最后一步是添加到你的 npm 和全局 npm 包中。为此,请将以下行添加到:~/.npm-packages/binPATH~/.bash_profile

export PATH="$HOME/.npm-packages/bin:$PATH"

现在,您可以毫无问题地重新安装所需的任何全局 npm 包。

评论

4赞 Andrew Grimm 6/22/2016
在 Stack Overflow 上不建议使用仅链接答案。
0赞 pcatre 3/21/2018
@AndrewGrimm有道理,我复制了相关部分。
1赞 Shoaib Ahmed 10/19/2018
输入以下命令后,我收到以下错误:curl -L npmjs.com/install.sh |嘘....npm 错误!此运行的完整日志可以在以下位置找到:npm ERR!/Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm 错误!代码 E404 npm ERR!404 未找到:1.535s@latest npm 错误!此运行的完整日志可以在以下位置找到:npm ERR!/Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log 失败
0赞 AmphotericLewisAcid 9/16/2021
没有选项。--without-npmbrew install node
9赞 brock 3/12/2015 #9

扩展了 Dominic Tancredi 的精彩回答,我将其整合到一个 bash 包和独立脚本中。如果您已经在使用名为 bpkg 的“Back Package Manager”,您可以通过运行以下命令来安装脚本:

bpkg install -g brock/node-reinstall

或者你可以在 Github 上查看 brock/node-reinstall 上的脚本。该脚本允许您使用 nvm 或 nave 重新安装节点,并将节点版本指定为默认版本。

评论

2赞 Wallace Sidhrée 10/18/2015
我正要发布这个,看到作者自己发布了这个问题的最佳答案:使用一次 node-reinstall,你永远不会回头。让我开始工作,为更多的开发做好准备!为这个@brockangelo干杯!
4赞 terrycojones 5/27/2016
警告。。。。。该脚本包含以下行: 因此,如果您碰巧(像我一样)独立地拥有该名称的目录,它就会被破坏!node-reinstallsudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*}$HOME
33赞 Anja Ishmukhametova 5/29/2015 #10

将节点降级到 0.10.36

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

将节点升级到稳定版 V

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable

评论

1赞 Capn Sparrow 9/5/2018
我刚刚这样做了,奇怪的是,它将 npm 从 6.4.1 降级到 6.2.0。
40赞 Johel Alvarez 6/29/2015 #11
  1. 第一:

    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.*
    
  2. 回顾一下,完全卸载 node + npm 的最佳方法(我发现)是执行以下操作:

    转到并删除任何节点并node_modules/usr/local/lib

    cd /usr/local/lib
    
    sudo rm -rf node*
    
  3. 转到并删除任何节点和node_modules目录/usr/local/include

    cd /usr/local/include
    
    sudo rm -rf node*
    
  4. 如果安装了 ,则在终端中运行brew install nodebrew uninstall node

    brew uninstall node
    
  5. 检查您的主目录中是否有任何“local”或“lib”或“include”文件夹,然后从那里删除任何“node”或“node_modules”

    转到 /usr/local/bin 并删除任何节点可执行文件

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
    
  6. 您可能还需要执行其他说明:

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

来源: tonyMtz

评论

11赞 Lenar Hoyt 10/11/2015
删除不是一种特别安全的方法。可能还有其他带有该前缀的二进制文件。node*
4赞 Amit Bravo 8/10/2016
太好了,终于在 3 天后,时不时出现 npm 问题,完全删除并在我的 mac 上使用 brew 重新安装,就像一个魅力。
2赞 Ahtesham Shah 6/20/2019
当触发第一个命令时,请帮忙can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.
2赞 vikramvi 7/22/2019
即使在 Mac 10.13.5 上执行这些步骤后,我仍然可以看到 npm 和 node 可能出了什么问题?
4赞 Dave Kuhlman 7/23/2015 #12

我已经从从 git 存储库下载的源代码安装了 Node.js。我安装了:

./configure
$ make
$ sudo make install

因为make文件支持它,所以我可以做:

$ sudo make uninstall

评论

0赞 11/11/2016
如何并行运行?假设我想运行 2 个版本?
-8赞 aze 5/4/2016 #13

(服务器:Ubuntu 14)

1.) 安装 NVM(节点版本管理器)https://github.com/creationix/nvm

2.) NVM 安装节点

3.) npm -v (查询 npm 版本 => 3.8.6)

4.) 节点 -v (查询节点版本 => v6.0.0)

5赞 js_248 12/9/2016 #14

您可以克隆 https://github.com/brock/node-reinstall 并运行存储库中给出的简单命令。之后,只需重新启动系统即可。
这是最简单的方法,也对我有用。

31赞 Big McLargeHuge 1/26/2017 #15

我不确定是因为我有一个旧版本(4.4.5),还是因为我使用了官方安装程序,但其他答案中引用的大多数文件在我的系统上都不存在。我只需要删除以下内容:

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

我决定保留,因为我计划使用 Homebrew 重新安装 Node。~/.npm

评论

1赞 Dominic Tancredi 2/5/2017
这个答案是在 2012 年做出的,所以我相信它有一些遗产。现在,如果出现新的答案,我会在审查它们是否有效后投票。
3赞 AlexSh 8/23/2018 #16

首先,您需要在安装新的节点版本后停用 node: (mac)。

nvm deactivate

这已从$PATH中删除了 /Users/user_name/.nvm/*/bin

在该节点更新之后

node --version
v10.9.0
7赞 vkrishna17 8/25/2018 #17

最好的方法是下载安装程序包:Mac 上的.pkg。首选最新的稳定版本。

这是链接:Node.js

此包最终将覆盖以前的版本并相应地设置环境变量。只需运行安装程序,只需单击几下即可完成。

15赞 Inês Gomes 11/5/2018 #18

为我工作。

$node --version

v11.1.0

$nvm deactivate

$nvm uninstall v11.1.0

评论

9赞 Sebastian 11/17/2018
但前提是你已经安装了。nvm
1赞 Inês Gomes 12/14/2018
@SebastianDressler 是的 :-)brew install nvm。更多信息在这里 stackabuse.com/how-to-uninstall-node-js-from-mac-osx
2赞 Cepheus 3/13/2019 #19

如果无法找到节点,只需运行 and and 即可根据需要删除列出的目录。whereis nodewhereis npmwhereis nvm

您还需要完全关闭终端并重新打开它才能使更改生效。

16赞 Rajiv Singh 3/29/2019 #20
  • 从 /usr/local/lib 中删除节点和/或node_modules

    ex code:
    cd /usr/local/lib
    sudo rm -rf node
    sudo rm -rf node_modules
    
  • 从 /usr/local/include 中删除节点和/或node_modules

  • 从 /usr/local/bin 中删除 node、node-debug 和 node-gyp

  • 从主目录中删除 .npmrc(这些是 npm 设置,如果您打算立即重新安装 Node,请不要删除它)

  • 从主目录中删除 .npm

  • 从主目录中删除 .node-gyp

  • 从主目录中删除.node_repl_history

  • 从 /usr/local/share/man/man1/ 中删除 node*

  • 从 /usr/local/share/man/man1/ 中删除 npm*

  • 从 /usr/local/lib/dtrace/ 中删除 node.d

  • 从 /usr/local/opt/local/bin/ 中删除节点

  • 从 /usr/local/opt/local/include/ 中删除节点

  • 从 /usr/local/opt/local/lib/ 中删除node_modules

  • 从 /usr/local/share/doc/ 中删除节点

  • 从 /usr/local/share/systemtap/tapset/ 中删除 node.stp

评论

1赞 echo 6/5/2019
我还必须从node@6/usr/local/opt/
18赞 mercury 4/18/2019 #21

brew uninstall node

我必须知道哪个节点

which node

然后删除它

rm -rf /usr/local/bin/node
11赞 Akhil Nadh PC 5/11/2019 #22

如果您已经安装了 nvm,请执行以下命令

  • nvm deactivate- 这将从$PATH中删除 /.nvm/*/bin
  • nvm list- 列出系统中安装的所有节点版本
  • nvm uninstall <version>您可以指定要卸载的所有版本。

使用而不是 . 安装节点 using 和卸载 using 而不是 .nvmnvmbrew

这个解决方案对我有用。

其他命令

  • which node了解系统中安装的节点的路径。您可以 rm 此目录以手动卸载节点。然后,您可能需要相应地调整PATH文件。
3赞 Raza Ahmed 9/21/2019 #23

就我而言,其他答案都不起作用,因为我之前降级到 node8。因此,与其执行上述操作,不如遵循以下操作:

which node

返回而不是/usr/local/bin/node@8/usr/local/bin/node

所以我执行了这个命令:

brew uninstall node@8

它起作用了,然后从官方网站下载了最新的PKG并安装。之后,我不得不关闭我的终端并重新开始访问新版本

4赞 Mick 11/21/2019 #24

作为解释通过自制软件进行清理和安装的答案的伴侣,我发现自制软件本身提供了符号链接冲突的明确指示。

不幸的是,它在遇到它们时一一提供这些,所以有点费力,但它似乎确实找到了所有的冲突,并且是我可以使用自制软件进行全新安装的唯一方法。

从本质上讲,该过程是:

  1. 使用 Homebrew 卸载 Node
  2. 干净的自制软件
  3. 使用 Homebrew 安装 Node 并记下任何标记的冲突文件
  4. 删除标志冲突文件(如果是“node”目录,则删除整个目录)
  5. 转到步骤 1,直到获得全新安装

Diagrammatically:

这是我安装最后一步的屏幕输出 - 您可以看到它导致全新安装(最终......

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0
85赞 Pengguna 1/24/2020 #25

我已经总结了现有的答案,并确保 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;

评论

3赞 WaterTrash 3/31/2020
我遵循了这些步骤,它似乎奏效了。我的根文件夹中仍然有目录,如 、 、 和 。如果我打算重新安装节点,我可以删除它们还是应该保留它们?.node-gyp/.npm/.npm-global/.nvm/
1赞 Wale 6/29/2021
在所有事情中,您可能希望删除 /node-gyp/
0赞 user776686 1/27/2022
wrt - 如果您通过附加安装了显式节点版本,那么您还必须使用相同的标识符卸载它们,单独使用它们不会覆盖它们brew uninstall node@<vernum>node
0赞 user776686 1/27/2022
尽管运行了几次(有和没有参数),但总是一遍又一遍地找到相同的剩菜brew cleanup--prune-prefixbrew doctor
3赞 Lucas Andrade 4/1/2020 #26

@lfender6445答案对我来说卸载得很好

现在重新安装时,我在安装最后一个版本而不是最稳定的版本时遇到了问题,因此要安装特定的节点版本,您应该这样做:

brew install node@10 // 10 is the version I want
brew link node@10
3赞 Kamil Kiełczewski 5/14/2020 #27

Docker - 替代方法

Docker 是某种超快速的虚拟机,可用于运行 node 等工具(而不是直接在 mac-os 上安装它们)。这样做的优点如下

  • 所有的东西('milions'节点文件)都安装在 docker 镜像/容器中(它们封装在几个内部 docker 文件中)

  • 您可以将带有项目的 Mac 目录映射到 Docker 容器并访问 Node - 但在 Docker 之外,Mac-OS 系统甚至不知道安装了 Node。因此,您可以获得某种带有可用节点命令的“虚拟”控制台,这些命令可以处理真实文件

  • 您可以通过找到节点并杀死节点来轻松杀死节点docker psdocker rm -f name_or_num

  • 您可以通过一个命令轻松卸载 docker 映像/容器并获得可用空间 - 然后通过运行脚本(如下)重新安装它docker rmi ...

  • 您的节点封装在 Docker 中,无法访问整个系统 - 只能访问您映射到它的文件夹

  • 您可以运行节点服务,并轻松地将它们端口映射到 MAC 端口,并从 Web 浏览器访问它

  • 您可以同时运行多个节点版本

  • 以类似的方式,您可以在 Docker 中安装其他工具,例如(同时在多个版本中):PHP、数据库、Redis 等 - 在 docker 中,无需与 mac-OS 进行任何交互(根本没有注意到此类软件)。例如,您可以同时运行 3 个具有不同版本的 mysql 数据库和 3 个具有不同 php 版本的 php 应用程序...... - 所以你可以有很多工具,但系统干净

  • 团队合作:这样的环境可以很容易地克隆到其他机器上(甚至克隆到 windows/linux 系统 - 经过一些修改)并提供相同的 docker 级环境 - 因此您可以轻松地设置和重用您的脚本/dockerfile,并以非常快速的方式为新团队成员设置环境(他只需要安装 docker 并创建类似的文件夹结构并获取脚本副本 - 仅此而已)。我和我的团队以这种方式工作了 2 年 - 我们非常高兴

指令

  • 例如,使用以下说明安装 docker

  • 为工作准备“特殊”目录,例如我的目录是(我将进一步使用此目录 - 但它可以是任意的) - 此目录将是 docker 容器和您的 mac 文件 ststem 之间的“接口”。在此目录中,创建以下目录结构:/Users/kamil/work

    /Users/kamil/work/code- 在这里,你可以用代码来放置你的项目

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data- 在这里,我们映射容器输出数据,如日志(或数据库文件,如果有人使用数据库等)

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd- 这里我们放了 docker 节点脚本

  • 在 create 文件中,该文件将在一个地方包含其他脚本中使用的全局路径tools.env

    toolspath="/Users/kamil/work/tools"
    codepath="/Users/kamil/work/code"
    workpath=/Users/kamil/work

  • innside dir 创建包含以下内容的文件../node-cmddockerfile

    # default  /var/www/html (mapped to .../code folder with projects)
    FROM node
    
    WORKDIR /work
    
    # Additional arbitrary tools (ng, gulp, bower)
    RUN npm install -g n @angular/cli bower gulp grunt
    
    CMD while true; do sleep 10000; done
    
    # below ports are arbitrary
    EXPOSE 3002 3003 3004 4200

  • innside dir 创建包含以下内容的文件(此文件应该是可执行的,例如 ) - (注意我们如何将端口和目录从外部“世界”映射到内部 docker 文件系统)../node-cmdrun-containerchmod +x run-container

    set -e
    cd -- "$(dirname "$0")" # this script dir (not set on doubleclick)
    source ../../.env
    toolsdir=$toolspath/docker-data
    workdir=$workpath
    
    if [ ! "$(docker ps | grep node-cmd)" ] 
    then 
      docker build -t node-cmd .
      docker rm -f node-cmd |:
      docker run -d --name node-cmd -p 4200:4200 -p 4201:4201 -p 3002:3002 -p 3003:3003 -p 3004:3004 -v $toolsdir/node-cmd/logs:/root/.npm/_logs -v $workdir:/work node-cmd
    fi

  • 好的,现在您可以添加一些项目,例如 并在文件“run-cmd”之后添加到它(必须是可执行的)work/code/myProject

    cd -- "$(dirname "$0")"
    ../../tools/docker/node-cmd/run-container
    docker exec -it node-cmd bash -c "cd /work/code/myProject; bash"

  • 然后,如果您运行上面的脚本(通过双击),您将在项目目录中看到带有可用节点命令的控制台,例如npm install

  • 要在后台运行项目(例如某些服务器),例如运行 Web 服务器 angular-cli 应用程序,您可以使用以下脚本(名为 -must be executable) - (您还必须编辑文件以添加适当的域)run-front/etc/hosts

    cd -- "$(dirname "$0")"
    open "http://my-angular.local:3002"
    ../../tools/docker/node-cmd/run-container
    docker exec -it node-cmd  /bin/sh -c "cd /work/code/my-angular-project; npm start"
    cat         # for block script and wait for user ctrl+C

193赞 Akshay Vijay Jain 6/13/2020 #28


https://stackabuse.com/how-to-uninstall-node-js-from-mac-osx/
运行以下命令以从 MACOS 中的系统中完全删除节点

sudo rm -rf ~/.npm ~/.nvm ~/node_modules ~/.node-gyp ~/.npmrc ~/.node_repl_history
sudo rm -rf /usr/local/bin/npm /usr/local/bin/node-debug /usr/local/bin/node /usr/local/bin/node-gyp
sudo rm -rf /usr/local/share/man/man1/node* /usr/local/share/man/man1/npm*
sudo rm -rf /usr/local/include/node /usr/local/include/node_modules
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /usr/local/lib/dtrace/node.d
sudo rm -rf /opt/local/include/node /opt/local/bin/node /opt/local/lib/node
sudo rm -rf /usr/local/share/doc/node
sudo rm -rf /usr/local/share/systemtap/tapset/node.stp

brew uninstall node
brew doctor
brew cleanup --prune-prefix



在此之后,我将建议使用以下命令使用 nvm 安装节点(检查 https://github.com/nvm-sh/nvm 以获取最新版本)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

与 https://github.com/nvm-sh/nvm 相比


为什么选择nvm?
这是一个很好的问题,会有一些项目需要不同版本的 Node,
即 A 需要节点版本 12,而 B 需要节点版本 14。此节点版本管理仅由 nvm 提供。

评论

6赞 Vayl 5/24/2021
这在 2021 年 5 月对我有用,使用 Mac OS:10.15.6。谢谢:)
2赞 Sambuxc 11/2/2021
为什么你建议使用 nvm 来安装节点而不是 brew 或 npm?
3赞 FestiveHydra235 11/5/2021
2021 年 11 月为我工作,使用 Mac OS 11.5.2
5赞 pnmn 3/24/2022
2022 年 3 月为我工作!这是完全删除所有隐藏的 Node 二进制文件的唯一有效解决方案。
4赞 Huzaifa 8/17/2022
在 2022 年 7 月完美运行(我只是因为评论中的积极反馈而尝试了这个,谢谢大家。
25赞 Yohan W. Dunon 4/8/2021 #29

在 macOS Big Sur 版本 11.2.3 (20D91) 上完全卸载 Nodejs


介绍

首先,我想说谢谢你分享这个技巧@tonymtz

我的系统正在运行,并从官方网站安装。macOS Big Sur version 11.2.3 (20D91)nodejs Latest Current Version: 15.14.0 (includes npm 7.7.6)

我尝试在我的 MacBook Pro 上完全卸载,以便使用包管理器重新安装它:nodejshomebrew

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

但我面临着一个问题,就像@JohelAlvarez的回答中提到的@AhteshamShah一样:

当第一个命令被发射时,得到: – Ahtesham Shah Jun 20 '19 at 5:09can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.

我潜入了@JohelAlvarez链接的原始帖子,阅读了所有评论,我从 @e2tha-e 找到了这条评论

@tonymtz 在我在 Yosemite 10.10.5 上安装 Node v4.0.0 时,第一行需要是 与 否则,这就像一个魅力!lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; doneorg.nodejs.pkg.bom

@e2tha-e是对的,在)上从官方网站安装,文件名不是但是。macOS Big Sur version 11.2.3 (20D91nodejs Latest Current Version: 15.14.0 (includes npm 7.7.6)org.nodejs.pkg.bomorg.nodejs.node.pkg.bom

您可以在以下情况下进行检查。cd /var/db/receipts/ && ls -la

从Nodejs官网安装的解决方案

使用您喜欢的终端,从您的系统中完全卸载 Nodejs,如下所示:

选项 1

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

选项 2

转到并删除任何/var/db/receipts/org.nodejs.*

  1. cd /var/db/receipts/ && ls -la
  2. sudo rm -rf org.nodejs.*

转到并删除任何和/usr/local/libnodenode_modules

  1. cd /usr/local/lib && ls -la
  2. sudo rm -rf node*

转到并删除任何 和 目录/usr/local/includenodenode_modules

  1. cd /usr/local/include && ls -la
  2. sudo rm -rf node*

检查目录中是否有任何“local”或“lib”或“include”文件夹,然后从那里删除任何“node”或“node_modules”。$HOME

转到并删除任何节点可执行文件/usr/local/bin

  1. cd /usr/local/bin && ls -la
  2. sudo rm -rf /usr/local/bin/npm
  3. sudo rm -rf /usr/local/bin/node

您可能还需要这样做:

  1. sudo rm -rf /usr/local/share/man/man1/node.1
  2. sudo rm -rf /usr/local/lib/dtrace/node.d
  3. sudo rm -rf ~/.npm

之后,您可以检查系统中是否仍然存在或查找系统中所有出现的节点。nodewhich node


技巧

  1. 搜索节点文件所在的位置find / -name 'node' | sed -E 's|/[^/]+$||' |sort -u
  2. 在运行其他人共享的代码之前,请检查您的目录,以确保您编写了正确的文件名。

评论

1赞 Arjan 10/20/2021
今天,2021 年 10 月,node-v17.0.0.pkg(也支持 M1)的 BOM 包含前缀。因此,“选项 1”中的命令不需要为该版本添加该前缀。./usr/localrm
1赞 Noel Baron 7/31/2021 #30

对于任何使用 的人,当您更改节点版本时,它会自动重新安装 npm。您可以通过运行以下命令来逆转损坏:nnpm upgrade

  1. n(选择其他节点版本,npm 将重新安装)
  2. n(这一次,选择您喜欢的版本)
  3. npm -v(它将是 NPM 的旧版本)
  4. npm install -g [email protected](插入适当的版本)
2赞 Yandiro 8/24/2021 #31

我有同样的问题(运行 Fedora 34)。

这是由于使用 n: https://www.npmjs.com/package/n 引起的

n 帮助你管理不同版本的节点,但它有自己的方式来做到这一点,它不是通过操作系统包管理器!

这就是为什么有这些带有节点的未扩展文件夹的原因。

这对我有用:

  1. 重新安装 node 和 npm。
  2. 重新安装 n (sudo npm i -g n)
  3. sudo n prune(删除缓存的所有版本)
  4. sudo n uninstall(删除活动版本)
  5. 现在,您只安装了预期的 Node 版本(在步骤 1 中安装的版本)
1赞 Vishal Kumar 9/19/2021 #32

我正在处理一个在 Windows 上具有许多依赖项的 angular 项目,并且正在运行 Node 14.17.0。突然,我升级到 Node 最新版本 16.4.2 并开始发生冲突。

我没有一直使用 --legacy-peer-deps,而是决定降级。

  1. 从控制面板卸载节点
  2. 只需使用安装程序再次安装节点 14 即可

一切都很好。

评论

0赞 Abhishek Gautam 8/30/2022
这是一个临时修复,而不是解决方案,但无论如何,谢谢!
32赞 toh19 12/16/2021 #33

在 macOS Monterey 版本 12.0.1 上完成卸载 Node.js

要检查系统上安装的当前节点版本,请执行以下操作:

# node -v
# v14.15.0

输入以下给定的命令以从系统中删除节点:

# cd /usr/local/include
# sudo rm -R node
# cd ../lib
# sudo rm -R node_modules
# cd ../bin
# sudo rm -R node

检查节点是否不再存在

# node -v
# -bash: node: command not found

在 macOS Monterey 版本 12.0.1 上安装 Node.js

  1. 官网下载节点的LTS版本
  1. 双击 node-v16.13.1.pkg 安装包并继续使用默认设置

  2. 在终端中输入以打印当前安装的节点版本: & 打印计算机上安装的当前 npm 版本:node -vv16.13.1npm -v8.1.2

评论

0赞 Gulam Hussain 1/16/2022
我的文件夹是空的include
0赞 izogfif 5/4/2022
注意:这样,当您尝试使用全局安装任何内容时,都会收到错误。官方文档(docs.npmjs.com/downloading-and-installing-node-js-and-npm)强烈建议使用 Node 版本管理器来安装 Node.js 和 npm。EACCES: permission deniednpm install -g any-package-name
21赞 Prateek Kumar Dalbehera 12/28/2021 #34

卸载 NodeJS 的步骤:

对于搭载 M1 芯片的 MacOS Monterey,请点击以下链接从系统中完全卸载节点。我尝试了多种方法,但这种方法最终奏效了。

从 Mac M1 Monterey 卸载 NodeJS 和 NPM

此外,请在末尾执行以下命令以从 bin 文件夹中删除节点相关目录。

sudo rm -R node-sass
sudo rm -R npm
sudo rm -R npx

要验证节点是否已删除,请执行以下操作:

node --version

它应该显示未找到命令。

安装 NodeJS 的步骤:

在带有 M1 芯片的 Mac 上启用 Rosseta 终端。如何启用 Rosseta 终端

使用 nvm(节点版本管理器)在计算机上安装 NodeJS。为什么选择nvm??因为您可以运行多个版本的 NodeJS(您可以使用新应用以及旧版应用)。

如何使用 nvm 安装多个版本的 NodeJS

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

如果 .zshrc 文件不存在,请创建一个。

touch ~/.zshrc

使用 nvm 安装节点。

nvm install node # "node" is an alias for the latest version
nvm install 14.7.0 # or 16.3.0, 12.22.1, etc

要验证可用的 NodeJS 版本数,请执行以下操作:

nvm ls
-1赞 master_dodo 5/22/2023 #35

如果您通过 brew 安装了 nvm:

nvm unload shell

brew uninstall nvm

如果您仍然在mac的根文件夹中,请手动删除它或执行以下操作:.nvm

rm -rf $NVM_HOME

还要从 ~/.zshrc 中删除以下代码,您将在执行时手动添加该代码brew install nvm

  export NVM_DIR="$HOME/.nvm"
  [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
  [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

0赞 lvndry 11/21/2023 #36

就我而言,问题是我同时安装了 和 默认情况下使用不同的版本。我删除了 volta,如下所述:https://docs.volta.sh/advanced/uninstall,它工作正常nvmvolta