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

标签 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:~#

最佳答案

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

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

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

  2. 创建 /etc/wsl.conf与...

    [interop]
    appendWindowsPath = false
    

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

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

关于ubuntu - 我无法在 WSL2 开启的 Windows 10 上使用 npm 命令(ubuntu 终端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63116206/

相关文章:

c++ - Qt5.1加载平台插件xcb失败

mongodb - Ubuntu机器上的XFS或ext4文件系统mongodb服务器?

npm - 无法在 Windows 7/OSX 上安装 jasmine-core

node.js - NPM 模块不会在没有 sudo 的情况下全局安装

javascript - 在 React Native 中安排本地通知不起作用

c++ - string_view 和 basic_string<char> 有什么联系,为什么 string_view 示例代码不起作用?

android-studio - 如何将在 WSL2 中运行的 Android Studio 与连接的设备或在主机上运行的 Android 模拟器连接起来

linux - ubuntu 升级到 14.04 后 apt-get 坏了

ip - 通过局域网 (LAN) 与 WSL2 上的 ROS 通信时出现问题

ubuntu - PySpark java.lang.ExceptionInInitializerError 由 : java. lang.StringIndexOutOfBoundsException 引起