在WSL2中:已安装适用于Windows 10的Ubuntu 20.04 nodejs,但npm无法正常工作

问题描述

我正在 Windows 10 操作系统中使用 WSL2:Ubuntu 20.04 。我执行John123,3 Main St 50000,5000 06/15/2008,09/30/2019 命令时,已经使用命令using (var reader = ExcelReaderFactory.CreateReader(stream)) { for (bool canRead = true; canRead; canRead = reader.NextResult()) { //reader.Read(); many times } } 安装了reader.Read(),我得到了nodejs

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ node -v
v12.18.3

但是当我执行sudo apt-get install -y nodejs命令时,我会在命令下面得到这个信息

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ npm -v
-bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory

我也执行node -v命令。希望这将有助于找到解决方案。

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ whereis node
node: /usr/bin/node /usr/include/node /mnt/c/Program Files/nodejs/node.exe /usr/share/man/man1/node.1.gz

mrd@DESKTOP-2EO5K4H:/mnt/c/Users/musfi$ whereis npm
npm: /usr/bin/npm /mnt/c/Program Files/nodejs/npm /mnt/c/Program Files/nodejs/npm.cmd /usr/share/man/man1/npm.1

我已经尝试了几乎所有的stackoverflow解决方案和github问题,但是对我来说没有任何帮助。
希望任何一个有灵魂的人都能解决这个问题。预先感谢。

解决方法

尝试一下

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sudo apt install npm
,

对于所有Unix / Linux / MacOS操作系统,我总是宁愿使用“节点版本管理器”。它通常可以在Linux和MacOS上完美运行(并且还具有Windows端口),并提供了一种非常简单的方法来正确安装@Query(value = "SELECT a FROM AppUser a " + "LEFT JOIN FETCH a.appsAndGamesWishList " + "LEFT JOIN FETCH a.ebookWishList " + "where a.id = (:appUser)") Optional<AppUser> findById(@Param("appUser") String appUser); node,而无需安装npm

查看此处:https://github.com/nvm-sh/nvm

我可以在我的机器上确认它也可以在WSL2的Ubuntu 20.04上运行。

,

出现以下错误的解决方法: -bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory

编辑~/.bashrc 在文件末尾追加:

# strip out problematic Windows %PATH%
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g')

现在 npm init 会起作用。

,

更好的方法是在您的 Windows 用户目录中配置 /etc/wsl.conf

将其添加到 /etc/wsl.conf 中,因此 Windows Path 不会优先

[interop]
appendWindowsPath=false

有关更多配置详细信息,请查看 Microsoft 开发博客 here