当我更改node的nvm版本时,我遇到了yarn问题。我注意到当我检查我的~/. nvm文件夹时,我看到了两个节点版本。
我在全球范围内安装了yarn。当我使用v8.11.0时使用npm install-g yarn。
我能看到纱线在我的
.nvm/versions/node/v8.11.0
但是当我切换到nvm v8.11.3或将我的nvm别名默认设置为v8.11.3
Yarn不再可用。我再次尝试进行全局安装,希望它能将其添加到我的v8.11.3文件夹中,但它一直试图将其添加到v8.11.0
我什至删除了文件夹v8.11.0,但它只是在我运行npm install-g yarn时重新创建它
如何安装它,以便我可以使用nvm中的任何节点版本开关使用yarn
当您使用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之间切换,您的纱线仍然可以工作。
OP描述的问题是由于全局安装的包存在于它们受尊重的命名空间(它们的版本)内,并且不能跨版本共享。有几种方法可以解决这个问题。NON-RECOMMEND方法是通过brew
、apt
或非节点包管理器安装yarn。虽然它可以工作,但事情可能会中断。
推荐方式如下所述。
nvm有一个非常好的默认包安装程序。这将在使用nvm安装新节点版本时安装指定的包。
在$NVM_DIR/default-包
处创建一个文本文件,通常位于~/. nvm/default-包
处,其中包含要安装的npm包列表。内容可能如下所示
@vue/cli
create-react-app
firebase-tools
yarn
文档链接在这里
尝试运行nvm install--lts
安装node的最新lts版本,将自动安装default-包
中指定的包。
检查是否有~/. npmrc
文件。
如果是,请删除其中的内容。