Ubuntu 我如何让yarn使用正确的Node版本?

How can I get yarn to use the right version of Node?


问题

我是Node、JavaScript等方面的新手,想尝试搞一下 Signal 的代码。为此我需要 一个特定版本的Node 。我(在Ubuntu 16.04上)使用以下程序做到了这一点:

wget https://nodejs.org/dist/v8.2.1/node-v8.2.1-linux-x64.tar.gz
sudo mkdir -p /opt/nodejs
sudo tar -xvzf node-v8.2.1-linux-x64.tar.gz -C /opt/nodejs/
cd /opt/nodejs/
sudo mv node-v8.2.1-linux-x64 8.2.1
sudo ln -s 8.2.1 current
sudo ln -s /opt/nodejs/current/bin/node /bin/node
mode -v

然后我安装了NPM:

sudo apt install npm

然后我开始通过 Signal 的设置步骤工作:

sudo npm install --global yarn
sudo yarn install --frozen-lockfile
sudo yarn grunt

当我运行这最后一条命令时,我看到正在使用一个不正确的Node版本,然后遇到了一个错误:

  yarn run v1.5.1
warning 你正在使用不被支持的Node "4.2.6",可能会遇到bug或意外行为。Yarn支持以下semver范围。"^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0"
error 发生了一个意外的错误。"Couldn't find a package.json file in \"/opt/nodejs\"" 。
info 如果你认为这是一个错误,请用"/opt/nodejs/yarn-error.log "中提供的信息打开一个错误报告。
info 访问 https://yarnpkg.com/en/docs/cli/run 了解关于此命令的文档。 

出了什么问题?

这究竟是如何在几秒钟内获得超过1000次浏览的?
答案1

你需要确保你已经安装了 nvm (节点版本管理器),并且从你的 .bashrc 文件中正确导出了它。

如果你已经安装了nvm,你可以通过运行 nvm use v14.18.1 把版本改为你想要的节点版本

如果你使用的是WSL或WSL2,这个 链接 应该可以帮助你进行设置。然而,如果你使用的是实际的Ubuntu,nvm应该已经在主目录中的 .bashrc 文件中设置好了。