在 WSL 中安装 yarn 和 npm

Install yarn and npm in WSL

我已经在 Windows 10 上为 Linux (WSL) 和 Ubuntu 16.04 安装了 Windows 子系统。然后我按照 this 安装纱线:

sudo apt update
sudo apt install curl
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

它没有引发任何错误。但是,yarn --version 返回了

$ yarn --version
/mnt/c/Users/chengtie/AppData/Roaming/npm/yarn: 12: /mnt/c/Users/chengtie/AppData/Roaming/npm/yarn: node: not found

npm --version 返回

$ npm --version
: not foundram Files/nodejs/npm: 3: /mnt/c/Program Files/nodejs/npm:
: not foundram Files/nodejs/npm: 5: /mnt/c/Program Files/nodejs/npm:
/mnt/c/Program Files/nodejs/npm: 6: /mnt/c/Program Files/nodejs/npm: Syntax error: word unexpected (expecting "in")

有人知道如何解决这个问题吗?

必须先安装nodejs

sudo apt-get install nodejs

看看这个:

/mnt/c/Users/chengtie/AppData/Roaming/npm/yarn: 12

它正在寻找 Windows 上安装的纱线。您必须从 windows 中卸载 yarn 或从 WSL 的 PATH 中删除它。

使用以下命令从 PATH 中删除 windows 纱线:

WIN_YARN_PATH="$(dirname "$(which yarn)")"
export PATH=$(echo "${PATH}" | sed -e "s#${WIN_YARN_PATH}##")

您可以将其添加到您的 .bashrc

此外,查看您的错误消息,它也从 windows 获取 npm,您需要使用相同的技术将它们从路径中删除。

如果您安装了最新的 nodejs 版本:

我遇到了同样的问题,并通过尝试 sudo npm -v 解决了这个问题,为了在没有 sudo 的情况下获取 npm,我 重新启动 了 WSL。

如果你没有最新的nodejs版本:

如果你使用的是WSL,你可以通过

安装最新稳定版

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

代替 setup_8.x,您可以为版本 16(包括 npm)保留 setup_16.x

sudo apt-get install nodejs

通过 nodejs -v 检查 nodejs 版本。 通过 npm -v.

检查 npm 版本

如果还是一样的错误代码。尝试 sudo npm -v 或重启 PC/WSL 然后尝试 npm -v.

您需要输入:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

然后:

sudo apt-get install -y nodejs