NPM版本与节点版本不兼容

pcww981p  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(295)

我目前在Debian 10上使用Node.js。我试图升级我的node和npm版本,以便我可以部署到firebase,因为firebase命令显然不再与我使用的node版本兼容。我运行npm install -g npm来升级npm。现在,每次我尝试安装npm时,都会得到这个错误:

ERROR: npm v9.2.0 is known not to run on Node.js v12.22.12. You'll need to
upgrade to a newer Node.js version in order to use this version of npm. This
version of npm supports the following node versions: `^14.17.0 || ^16.13.0 ||
>=18.0.0`. You can find the latest version at https://nodejs.org/.

ERROR:
/usr/local/lib/node_modules/npm/lib/utils/exit-handler.js:22
  const hasLoadedNpm = npm?.config.loaded
                       ^

SyntaxError: Unexpected token '.'
    at wrapSafe (internal/modules/cjs/loader.js:915:16)
    at Module._compile (internal/modules/cjs/loader.js:963:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at module.exports (/usr/local/lib/node_modules/npm/lib/cli.js:76:23)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:2:25)
    at Module._compile (internal/modules/cjs/loader.js:999:30)

但是当我运行npm -v时,我仍然得到7.5.2,这是我以前使用的npm版本。我尝试卸载并重新安装node和npm(使用sudo apt-get remove和sudo apt-get install),但问题仍然存在。
如何恢复到旧的npm版本?(7.5.2)

mcdcgff0

mcdcgff01#

检查多个Node.js版本:

您可以通过运行以下命令来检查系统上是否安装了多个Node.js版本:

run node -v

sudo /usr/bin/node --version.

如果你得到不同的版本,很可能Node.js是从不同的来源安装的。

解决方案:
1.删除现有Node.js:

sudo apt remove nodejs

2.安装nvm:

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

3.使用nvm安装nodejs:

nvm install --lts

4.创建用于全系统访问的符号链接:

要使nvm管理的Node.js版本在系统范围内可访问,请在系统目录中创建一个符号链接,如/usr/local/bin(通常包含在系统的PATH中):
a.找到nvm管理的Node.js二进制文件的路径:

which node

B.在系统目录(如/usr/local/bin)中创建指向该二进制文件的符号链接,该目录通常包含在系统的PATH中:

sudo ln -s /path/to/nvm/node /usr/local/bin/node

将/path/to/nvm/node替换为nvm管理的Node.js二进制文件的实际路径。

5.验证安装

确认Node.js已正确安装,并且可以作为常规用户和使用sudo访问:

node -v
sudo node -v

这两个命令应该显示相同的Node.js版本。

相关问题