npm 在 WSL 中显示“NPM ELF:未找到错误”

Ana*_*nas 15 node.js npm windows-subsystem-for-linux

我在运行 npm 时出错,我已经准备好尝试重新安装

sudo apt-get remove nodejs npm -y && sudo apt-get install nodejs npm -y

这个问题仍然存在

/usr/bin/node: 1: ELF: not found
/usr/bin/node: 2: : not found
/usr/bin/node: 4: Syntax error: Unterminated quoted string
Run Code Online (Sandbox Code Playgroud)

我正在使用 Ubuntu WSL

Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy

Linux localhost 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

npm -v 命令

npm -v
-bash: /usr/bin/node: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)

Ell*_*son 38

对于我在 Windows 10 上使用 WSL2 和 Ubuntu 22.04 LTS 来说,这是一个问题。这篇文章中的其他解决方案没有帮助,我不愿意降级到 Ubuntu 20。相反,我设法通过使用 apt 删除所有与节点相关的软件包,然后按照Microsoft 的本指南通过 nvm 安装节点来修复它。

因此,要删除软件包:

sudo apt-get remove --purge nodejs npm
Run Code Online (Sandbox Code Playgroud)

然后安装nvm...

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

重新启动终端。然后,确保 nvm 已安装:

nvm --version
Run Code Online (Sandbox Code Playgroud)

最后,使用nvm安装最新版本的node和npm:

nvm install node
Run Code Online (Sandbox Code Playgroud)

检查以确保已安装 Node 和 npm:

node --version
npm --version
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!