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

Posted

技术标签:

【中文标题】纱线未安装在 nvm 版本节点版本中【英文标题】:Yarn not installing in nvm version node version 【发布时间】:2019-02-09 23:09:11 【问题描述】:

我在更改节点的 nvm 版本时遇到了纱线问题。 我注意到当我检查我的 ~/.nvm 文件夹时,我看到了两个节点版本。

v8.11.0 v8.11.3.

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

我可以看到纱线在我的

.nvm/versions/node/v8.11.0

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

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

我怎样才能安装它,以便我可以使用 nvm 中的任何节点版本开关来使用 yarn

【问题讨论】:

【参考方案1】:

当你使用nvm安装新的node版本,然后使用npm安装yarn时,你需要为新的node版本重新安装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 之间切换,你的 yarn 仍然可以工作。

【讨论】:

似乎不起作用仍然将纱线放在旧节点版本 -->/Users/mpayne/.nvm/versions/node/v6.11.4/bin/yarn -> /Users/mpayne/ .nvm/versions/node/v6.11.4/lib/node_modules/yarn/bin/yarn.js /Users/mpayne/.nvm/versions/node/v6.11.4/bin/yarnpkg -> /Users/mpayne/.nvm /versions/node/v6.11.4/lib/node_modules/yarn/bin/yarn.js + yarn@1.12.3 在 0.827 秒内更新了 1 个包 --> nvm 当前 v8.12.0 为什么您的结果中有节点 v6.11.4?你能发布“nvm列表”吗? @MatthewPayne 你能确认一下吗?请不要忘记标记已回答并点赞:)。【参考方案2】:

OP 所描述的问题是由于全局安装的包存在于它们尊重的命名空间(它们的版本)中,并且它不能跨版本共享。有几种方法可以解决这个问题。 非推荐方式是通过brewapt或非节点包管理器安装yarn。虽然它有效,但事情可能会破裂。

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

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

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

文档链接here

尝试运行nvm install --lts 安装node 最新的lts 版本,default-packages 中指定的包将被自动安装。

【讨论】:

在问这个问题之前,我搜索了 gh-nvm 问题,但是有很多问题——有没有办法在不重新安装所有节点的情况下更新/安装这些默认包?【参考方案3】:

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

如果有,删除里面的内容。

【讨论】:

【参考方案4】:

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

brew install yarn --ignore-dependencies

这对我有用。无论我使用 nvm 切换到什么节点版本,纱线都可用。希望这可以帮助某人。更多信息可以在这里找到:https://yarnpkg.com/lang/en/docs/install/#mac-stable

【讨论】:

这将起作用,但也会导致使用与 brew 一起安装的 yarn,无论 nvm 使用什么节点版本。所以如果你想在不同的项目上使用不同的 yarn 版本,这会导致问题。【参考方案5】:

按照official documentation上的安装指南进行操作:

如果使用 nvm,您可以通过以下方式避免节点安装:

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

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

【讨论】:

以上是关于纱线未安装在 nvm 版本节点版本中的主要内容,如果未能解决你的问题,请参考以下文章

节点版本管理器安装 - 未找到 nvm 命令

在纱线中安装所有未满足的依赖项

在windows中使用 nvm 实现node多版本管理

使用NVM更新后,节点版本未保留

关于在window 中安装nvm

终端默认为旧的纱线版本(lerna bootstrap)