1

我试图让 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:~#
4

1 回答 1

6

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

据我所知,有一些可能的解决方法:

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

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

    [interop]
    appendWindowsPath = false
    

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

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

于 2020-08-17T21:31:34.937 回答