我无法在 WSL2 ON 的 Windows 10 上使用 npm 命令(ubuntu 终端)

not*_*dev 1 ubuntu npm wsl-2

我试图让 npm 命令工作,但它不想。正如我在标题中所说,我使用的是 Windows WSL2。很久以前我已经用 Git Bash 安装了 nodejs,但现在我需要它在我的 ubuntu 终端上工作。我该如何解决这个问题?

我的 ubuntu 终端:

root@DESKTOP-U2RC2DU:~# node -v
v10.19.0
root@DESKTOP-U2RC2DU:~# npm
-bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory
root@DESKTOP-U2RC2DU:~#
Run Code Online (Sandbox Code Playgroud)

Not*_*1ds 5

检查您在 WSL 中的路径。如果在 Linux 版本之前找到 Windows 版本,则可能会导致问题。

我知道有一些可能的解决方法:

  1. 创建一个启动脚本(例如 bashrc 或您选择的 shell 的等价物),从路径中删除 Windows 节点,或者至少为 Linux 版本提供更高的优先级。可能最简单的解决方案是在路径前添加任何 Linux 版本位置。

  2. 使用...创建/etc/wsl.conf

    [interop]
    appendWindowsPath = false
    
    Run Code Online (Sandbox Code Playgroud)

    这将从WSL 会话中删除所有Windows 路径。缺点是一些有用的 Windows 实用程序将不再位于 WSL 路径中,但您始终可以在启动脚本中手动重新添加它们。从脚本的角度来看,这可能比手动删除路径更容易,至少。

  3. 如果您不再需要它,并且将专门使用 Linux/WSL 版本,则可以卸载 Windows nodejs。