纱线未在nvm版本中安装节点版本

时间:2018-09-04 21:44:53

标签: npm yarnpkg nvm

当我更改节点的nvm版本时,我遇到了yarn的问题。 当我检查〜/ .nvm文件夹时,我注意到有两个节点版本。

  • v8.11.0
  • v8.11.3。

我在全球范围内安装了纱线。使用v8.11.0时使用 npm install -g yarn

我可以在自己的纱线中看到

IFNULL(SUM(x), 0)

但是当我切换到nvm v8.11.3或将我的nvm别名默认设置为v8.11.3
纱线不再可用。我尝试再次进行全局安装,希望将其添加到我的v8.11.3文件夹中,但一直尝试将其添加到v8.11.0

我什至删除了文件夹v8.11.0,但是当我运行npm install -g yarn时它会重新创建它

如何安装它,以便可以在nvm中使用任何节点版本开关来使用yarn

5 个答案:

答案 0 :(得分:16)

OP所描述的问题是由以下事实引起的:全局安装的软件包位于其受尊重的名称空间(其版本)中,并且无法在各个版本之间共享。有几种解决方法。 非推荐方式是通过brewapt或非节点程序包管理器安装纱线。虽然可以,但是事情可能会破裂。

推荐方式如下所述。
nvm有一个非常不错的默认软件包安装程序。使用nvm安装新节点版本时,这将安装指定的软件包。

$NVM_DIR/default-packages创建一个文本文件,通常位于~/.nvm/default-packages,其中包含要安装的npm软件包列表。 内容可能如下所示

@vue/cli
create-react-app
firebase-tools
yarn

文档链接here

尝试运行nvm install --lts以安装节点的最新lts版本,将自动安装default-packages中指定的软件包。

答案 1 :(得分:5)

使用nvm安装新节点版本,然后使用npm安装yarn时,需要为新节点版本重新安装yarn。

尝试:

nvm install 8.11.3
nvm use 8.11.3
npm install -g yarn

这会将纱线安装在:

.nvm/versions/node/v8.11.3/

然后您可以在8.11.0和8.11.3之间切换,并且纱线仍将起作用。

答案 2 :(得分:1)

检查是否有~/.npmrc文件。

如果是,请删除其中的内容。

答案 3 :(得分:0)

我最近在Mac上遇到了这个问题。我不得不使用

brew install yarn --ignore-dependencies

这为我做到了。无论我使用nvm切换到哪个节点版本,都可以使用Yarn。希望这对某人有帮助。可以在这里找到更多信息:here

答案 4 :(得分:0)

遵循official documentation上的安装指南:

如果使用nvm,则可以通过以下操作避免节点安装:

sudo apt update && sudo apt install --no-install-recommends yarn

注意:由于在某些发行版中使用了nodejs而不是节点名称,因此yarn可能会抱怨未安装节点。一种解决方法是在您的 .bashrc 文件中添加一个别名,如下所示: alias node=nodejs. 这将把yarn指向您决定使用的任何版本的节点

相关问题