节点版本不匹配:节点与sudo节点-版本... WSL 2 Ubuntu 22.04.1

rdrgkggo  于 2022-12-29  发布在  其他
关注(0)|答案(1)|浏览(210)

如下图所示,根据运行的命令,我看到了两个不同版本的node。

我需要较新的版本,但npm看到旧版本。

我多次拆除、清除、重新安装等。
我试着以root身份安装nvm并在那里设置节点版本,但也无济于事。
如果我使用apt install nodejs而不是nvm,它会告诉我我已经有了最新版本,它认为是12.22.9.
如何让npm识别我通过nvm安装的节点的新版本(18.12.1)?

f0brbegy

f0brbegy1#

这是因为您为root用户和该特定用户安装了不同版本的Node.js。
首先,您需要卸载Node.js:

sudo apt-get remove nodejs

sudo npm rm npm -g

如果您对上述命令有任何问题,则在运行which node命令后,转到该目录,并运行以下命令:

rm -r bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node.1

如果需要,对当前用户执行相同的操作。

默认的Ubuntu/Debian软件包管理器没有最新的Node.js,这就是为什么当你尝试安装带有apt install nodejs的Node.js时,它会说你有最新的版本。
根据Node.js官方文档,要安装最新版本,您应该按照以下步骤操作:

使用Ubuntu

curl -fsSL https://deb.nodesource.com/setup_19.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

**P.S:**不需要运行npm或带有sudo的node。因此,我强烈建议您不要将每个命令都与sudo一起使用。

相关问题