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

javascript JavaScript

Elena

2022-11-30

即使在安装 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 进行更新,使用brew updatebrew install node. 我试过删除我的“节点”目录/usr/local/include和我的/usr/local/lib. 我已经尝试按照这些说明卸载 npm 并重新安装它。

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

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

第4292篇《如何完全卸载 Node.js,然后从头重新安装 (Mac OS X)》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

25个回答
西里神奇 2022.11.30

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

  1. n(选择不同的节点版本,npm 将重新安装)
  2. n(这一次,选择您喜欢的版本)
  3. npm -v(它将是旧版本的 NPM)
  4. npm install -g npm@7.x.x(插入适当的版本)
阿良 2022.11.30

这为我修复了Fixing npm On Mac OS X for Homebrew Users而且它不需要太多的步骤。

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

为了方便起见,这里是相关部分:

解决方案

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

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

运行以下命令以删除所有现有的全局 npm 模块,卸载节点和 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-packages/bin到你的PATHso npm 和全局 npm 包是可用的。为此,请将以下行添加到您的~/.bash_profile

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

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

小胖 2022.11.30

如果您无法找到节点,只需运行whereis nodeandwhereis npm并且whereis nvm您可以根据需要删除列出的目录。

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

阿飞 2022.11.30

就我而言,其他答案均无效,因为我之前已降级到 node8。因此,与其上面那样做,不如以下对我有用:

which node

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

所以我执行了这个命令:

brew uninstall node@8

这有效,然后从官方网站下载最新的 pkg 并安装。之后我不得不关闭我的终端并重新开始访问新版本

伽罗 2022.11.30

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

nvm deactivate

这是从 $PATH 中删除的 /Users/user_name/.nvm/*/bin

在该节点更新后

node --version
v10.9.0
Chloe 2022.11.30

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

./configure
$ make
$ sudo make install

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

$ sudo make uninstall
小胖Gil 2022.11.30

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

鱼二水 2022.11.30

在我的 Mac 上卸载 Node.js 时,我遇到了一个问题。我有一些奇怪的行为npm,即使在不得不将其全部删除之后仍然存在。

这是因为我用 macport 完成了旧安装。所以你还必须使用端口卸载它:

sudo port uninstall nodejs

它可能已经安装了许多不同版本的 Node.js,所以将它们全部卸载(一个一个地)。

6的不行 2022.11.30

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

这是链接:Node.js

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

蓝染大人 2022.11.30

也许你需要做

hash -r 

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

$ node -v
$ bash: /opt/local/bin/node: No such file or directory
西门 2022.11.30

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

rm -rf /usr/local/share/man/man1/npm*
小胖Gil 2022.11.30

为我工作。

$node --version

v11.1.0

$nvm deactivate

$nvm uninstall v11.1.0
西门 2022.11.30

如果你已经安装了nvm然后执行以下命令

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

使用而不是使用安装节点nvm和卸载节点总是一件好事nvmbrew

这个解决方案对我有用。

附加命令

  • which node了解系统中安装的节点路径。您可以 rm 此目录以手动卸载节点。那么您可能需要相应地调整 PATH 文件。
古一 2022.11.30

brew uninstall node

我必须知道哪个节点

which node

然后删除它

rm -rf /usr/local/bin/node
和田 2022.11.30
  • 从 /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 中删除节点、节点调试和节点 gyp

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

  • 从您的主目录中删除 .npm

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

  • 从您的主目录中删除 .node_repl_history

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

  • 从 /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

伽罗 2022.11.30

卸载 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
三三呀 2022.11.30

将节点降级到 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
神奇神奇Near 2022.11.30

在 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版本的node
  1. 双击node-v16.13.1.pkg安装包,继续默认设置

  2. 在您的终端中输入node -v以打印当前安装的节点版本:v16.13.1&npm -v以打印您机器上安装的当前 npm 版本:8.1.2

Me无敌 2022.11.30

我不确定是因为我有一个旧版本(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

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

番长猴子 2022.11.30
  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 的最佳方法(我发现)是执行以下操作:

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

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

    cd /usr/local/include
    
    sudo rm -rf node*
    
  4. 如果你安装了brew install node,然后brew 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

老丝 2022.11.30

我知道这篇文章有点过时,但只是想分享在删除 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.*
三分糖就好 2022.11.30

我总结了现有的答案并确保 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;
启人 2022.11.30

在 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后,我安装usingbrew install node

小胖Gil 2022.11.30

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?
这是一个很好的问题,会有项目需要不同版本的节点,
即A需要节点版本12,而B需要节点版本14。节点的版本管理仅由nvm提供。

留姬 2022.11.30

显然,有一个/Users/myusername/local包含includewithnodelibwithnode的文件夹node_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,但您也可以重新安装它。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android