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

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

我的节点版本是:

node -vv0.6.1-pre

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

nvm lsv0.6.19current:    v0.6.19

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

nvm lsv0.6.19current:    v0.6.1-predefault -> 0.6.19 (-> v0.6.19)

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

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

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

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

2467701 次浏览

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

删除这些本地引用修复了幻象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安装节点安装,则在终端中运行brew卸载节点
  4. 检查您的主目录中是否有任何当地lib包括文件夹,并从那里删除任何节点node_modules
  5. 转到/usr/local/bin并删除任何节点可执行文件

您可能还需要执行:

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

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

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

我在卸载我的mac上的Node.js时遇到了一个问题。我有一些奇怪的行为,比如npm仍然存在,即使不得不删除它。

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

sudo port uninstall nodejs

它可能安装了许多不同版本的Node.js所以卸载它们(一个接一个)。

在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安装

我知道这篇文章有点过时,但只是想分享在终端中删除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

gistteve-1572198评论列表

原始要点:Tony M tz/d 75101 d 9 b df 764 c 890 ef

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

也许你需要

hash -r

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

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

对于brew用户,OSX

要删除:

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

要安装:

brew install node;which node # => /usr/local/bin/nodeexport 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 listv4.2.0v5.8.0v6.11.0->       v8.1.2system

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

除了主要答案之外,我还需要删除以下所有npm实例:

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

这对我来说是固定的在Mac OS X上为Homebrew用户修复npm。它不需要太多的步骤。

只是去解决方案的一部分,如果你不关心为什么。

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

解决方案

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

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

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

rm -rf /usr/local/lib/node_modulesbrew uninstall nodebrew install node --without-npmecho prefix=~/.npm-packages >> ~/.npmrccurl -L https://www.npmjs.com/install.sh | sh

此时应该正确安装节点和npm。最后一步是将~/.npm-packages/bin添加到您的PATH,以便npm和全局npm包可用。为此,请将以下行添加到您的~/.bash_profile

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

现在你可以重新安装任何你需要的全局npm包,没有任何问题。

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

bpkg install -g brock/node-reinstall

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

将节点降级至0.10.36

  sudo npm cache clean -fsudo npm install -g nsudo n 0.10.36

将节点升级到稳定v

  sudo npm cache clean -fsudo npm install -g nsudo n stable
  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. To recap, the best way (I've found) to completely uninstall node + npm is to do the following:

    go to /usr/local/lib and delete any node and node_modules

    cd /usr/local/lib
    sudo rm -rf node*
  3. go to /usr/local/include and delete any node and node_modules directory

    cd /usr/local/include
    sudo rm -rf node*
  4. if you installed with brew install node, then run brew uninstall node in your terminal

    brew uninstall node
  5. check your Home directory for any "local" or "lib" or "include" folders, and delete any "node" or "node_modules" from there

    go to /usr/local/bin and delete any node executable

    cd /usr/local/bin
    sudo rm -rf /usr/local/bin/npm
    ls -las
  6. You may need to do the additional instructions as well:

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

Source: tonyMtz

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

./configure$ make$ sudo make install

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

$ sudo make uninstall

(服务器:ubuntu 14)

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

2.)nvm安装节点

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

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

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

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

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

nvm deactivate

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

在那个节点更新之后

node --versionv10.9.0

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

这里是链接:Node.js

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

为我工作。

$node --version
v11.1.0
$nvm deactivate
$nvm uninstall v11.1.0

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

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

  • 从 /usr/local/lib中删除节点和/或node_modules

    ex code:cd /usr/local/libsudo rm -rf nodesudo 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中删除节点*

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

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

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

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

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

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

  • 删除 /usr/local/share/systemtap/tapsetnode.stp

之后

brew uninstall node

我得知道是哪个节点

which node

然后移除那个

rm -rf /usr/local/bin/node

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

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

使用nvm安装节点并使用nvm卸载总是好的而不是brew

这个解决方案为我工作。

附加命令

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

在我的情况下,其他答案都不起作用,因为我之前降级为node8。所以,不是上面的操作,下面对我有用:

which node

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

所以我执行了这个命令:

brew uninstall node@8

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

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

不幸的是,当它遇到它们时,它会一个接一个地提供这些,所以它有点费力,但它似乎找到了所有的冲突,这是我用自制软件获得干净安装的唯一方法。

基本上,这个过程是:

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

图解

这是我安装的最后步骤的屏幕输出-您可以看到它导致干净安装(最终…):

computer1:DevResources user1$ brew install nodeUpdating Homebrew...==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gzAlready downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz==> Pouring node-13.1.0.mojave.bottle.tar.gzError: The `brew link` step did not complete successfullyThe formula built, but is not symlinked into /usr/localCould not symlink share/systemtap/tapset/node.stpTarget /usr/local/share/systemtap/tapset/node.stpalready 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==> CaveatsBash completion has been installed to:/usr/local/etc/bash_completion.d==> Summary🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MBcomputer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'computer1:DevResources user1$ brew uninstall nodeUninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)computer1:DevResources user1$ brew cleanupcomputer1:DevResources user1$ brew install nodeUpdating Homebrew...==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gzAlready downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz==> Pouring node-13.1.0.mojave.bottle.tar.gzError: The `brew link` step did not complete successfullyThe formula built, but is not symlinked into /usr/localCould not symlink lib/dtrace/node.dTarget /usr/local/lib/dtrace/node.dalready 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==> CaveatsBash completion has been installed to:/usr/local/etc/bash_completion.d==> Summary🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MBcomputer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'computer1:DevResources user1$computer1:DevResources user1$ brew uninstall nodeUninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)computer1:DevResources user1$ brew cleanupcomputer1:DevResources user1$ brew install nodeUpdating Homebrew...==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gzAlready 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==> CaveatsBash completion has been installed to:/usr/local/etc/bash_completion.d==> Summary🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MBcomputer1:DevResources user1$ node -vv13.1.0

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

@lfender6445回答对我来说卸载很好

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

brew install node@10 // 10 is the version I wantbrew link node@10

Docker-替代方法

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

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

  • 您可以将带有project的mac目录映射到docker容器并有权访问node-但在docker之外,mac-os系统甚至不知道该节点已安装。所以你会得到某种带有可用节点命令的“虚拟”控制台,可以在真实文件上工作

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

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

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

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

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

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

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

使用说明

  • 使用例如本说明安装docker

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

    /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节点脚本

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

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

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

    # 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 arbitraryEXPOSE 3002 3003 3004 4200

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

    set -ecd -- "$(dirname "$0")" # this script dir (not set on doubleclick)source ../../.envtoolsdir=$toolspath/docker-dataworkdir=$workpath
    if [ ! "$(docker ps | grep node-cmd)" ]thendocker 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-cmdfi

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

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

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

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

    cd -- "$(dirname "$0")"open "http://my-angular.local:3002"../../tools/docker/node-cmd/run-containerdocker 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

https://stackabuse.com/how-to-uninstall-node-js-from-mac-osx/

在MACOS中运行以下命令从系统中完全删除节点

sudo rm -rf ~/.npm ~/.nvm ~/node_modules ~/.node-gyp ~/.npmrc ~/.node_repl_historysudo rm -rf /usr/local/bin/npm /usr/local/bin/node-debug /usr/local/bin/node /usr/local/bin/node-gypsudo 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_modulessudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /usr/local/lib/dtrace/node.dsudo rm -rf /opt/local/include/node /opt/local/bin/node /opt/local/lib/nodesudo rm -rf /usr/local/share/doc/nodesudo rm -rf /usr/local/share/systemtap/tapset/node.stp
brew uninstall nodebrew doctorbrew 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提供。

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


导言

首先,我想说谢谢你分享这个把戏@陈志立

我的系统运行macOS Big Sur version 11.2.3 (20D91)nodejs Latest Current Version: 15.14.0 (includes npm 7.7.6)安装从官网链接。

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

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

但我面临着一个像@陈志立回答中提到的@张国强这样的问题:

当触发第一个命令时: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.-Ahtesham Shah June 20'19 at 5:09

我潜入@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不同的文件名#36825;,这就像一个魅力!

@e2tha-e是对的,在macOS Big Sur version 11.2.3 (20D91)上,从官网链接安装了nodejs Latest Current Version: 15.14.0 (includes npm 7.7.6),文件名不是org.nodejs.pkg.bom,而是org.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/lib并删除任何nodenode_modules

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

转到/usr/local/include并删除任何nodenode_modules目录

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

检查$HOME目录中的任何“本地”或“lib”或“包含”文件夹,并从那里删除任何“节点”或“node_modules”。

转到/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

之后,您可以使用which node检查系统中是否仍有node或查找系统中节点的所有出现。


Tips

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

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

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

我遇到了同样的问题(运行Fedora 34)。

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

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

这就是为什么有这些未使用的文件夹中的节点。

这对我有效:

  1. 重新安装节点和npm。
  2. 重新安装n(sudo npm i-g n)
  3. sudo n prune(删除所有缓存的版本)
  4. sudo n uninstall(删除活动版本)
  5. 现在您只安装了预期版本的节点(步骤1中安装的版本)

我正在处理一个对Windows有许多依赖关系的角度项目,并运行Node 14.17.0。突然我升级到Node最新版本16.4.2并开始出现冲突。

我决定降级,而不是一直使用--legation-peer-deps。

  1. 从控制面板卸载节点
  2. 使用Installer再次安装Node 14

一切又恢复正常了。

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

要检查系统上安装的当前节点版本:

# node -v# v14.15.0

输入以下命令以从系统中删除Node:

# 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. 在您的终端中键入node -v以打印当前安装的节点版本:v16.13.1npm -v以打印您机器上安装的当前npm版本:8.1.2

卸载NodeJS的步骤:

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

从Mac M1 Monterey卸载NodeJS和NPM

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

sudo rm -R node-sasssudo rm -R npmsudo rm -R npx

要验证该节点已删除:

node --version

它应该说找不到命令。

安装NodeJS的步骤:

使用M1芯片在Mac上启用Rosseta终端。如何启用Rosseta终端

使用nvm(Node Version Manager)在您的机器上安装NodeJS。为什么选择nvm?因为您可以运行多个版本的NodeJS(您可以使用新应用程序和旧版应用程序)。

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

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

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

touch ~/.zshrc

使用nvm安装节点。

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

要验证可用的NodeJS版本数:

nvm ls