当我更改节点的nvm版本时,我遇到了yarn的问题。 当我检查〜/ .nvm文件夹时,我注意到有两个节点版本。
我在全球范围内安装了纱线。使用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
答案 0 :(得分:16)
OP所描述的问题是由以下事实引起的:全局安装的软件包位于其受尊重的名称空间(其版本)中,并且无法在各个版本之间共享。有几种解决方法。 非推荐方式是通过brew
,apt
或非节点程序包管理器安装纱线。虽然可以,但是事情可能会破裂。
推荐方式如下所述。
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指向您决定使用的任何版本的节点