在 WSL2 中:安装了适用于 Windows 10 nodejs 的 Ubuntu 20.04,但 npm 无法正常工作
Posted
技术标签:
【中文标题】在 WSL2 中:安装了适用于 Windows 10 nodejs 的 Ubuntu 20.04,但 npm 无法正常工作【英文标题】:In WSL2: Ubuntu 20.04 for Windows 10 nodejs is installed but npm is not working 【发布时间】:2020-12-22 06:36:42 【问题描述】:我在我的 Windows 10 操作系统中使用 WSL2: Ubuntu 20.04。我已经使用命令sudo apt-get install -y nodejs
安装了nodejs
,当我执行node -v
命令时,我得到v12.18.3
但是当我执行npm -v
命令时,我会得到以下命令
我也做whereis
命令。希望这将有助于找到解决方案。
我已经尝试了几乎所有的 *** 解决方案和 github 问题,但没有一个对我有用。 希望任何善良的灵魂都能解决这个问题。提前致谢。
【问题讨论】:
【参考方案1】:试试这个
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sudo apt install npm
【讨论】:
成功了。你能解释一下你导出的是哪个 PATH 吗?问题是什么? PATH 是环境变量,它告诉在哪里查找命令,在您的情况下,npm bin 不在正确的路径上。【参考方案2】:以下错误的解决方法:
-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
可以工作了。
【讨论】:
【参考方案3】:对于所有 Unix/Linux/MacOS 操作系统,我总是宁愿使用“节点版本管理器”。它通常可以在 Linux 和 MacOS 上完美运行(并且还有一个 Windows 端口),并且可以通过一种非常简单的方式正确安装 node
和 npm
而无需成为 root
。
请看这里:https://github.com/nvm-sh/nvm
我可以在我的机器上确认它也适用于 WSL2 上的 Ubuntu 20.04。
【讨论】:
nvm
(和n
)是反模式【参考方案4】:
更好的方法是在 Windows 用户目录中配置 /etc/wsl.conf
。
将此添加到/etc/wsl.conf
,因此 Windows 路径不会优先
[interop]
appendWindowsPath=false
有关更多配置详情,请查看 Microsoft 开发人员博客 here。
【讨论】:
以上是关于在 WSL2 中:安装了适用于 Windows 10 nodejs 的 Ubuntu 20.04,但 npm 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
超详细Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04(带桌面环境)
Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04
安装Windows Linux 子系统的方法:适用于windows 11 版本