Yarn一直在为我工作,直到我决定需要多个版本的节点。所以我按照the following guide
的说明卸载了纱线并安装了nvm然后我使用msi安装程序成功重新安装了纱线。不幸的是,yarn global add [name]
在a location seemingly spanning all nvm-controlled node versions中安装了软件包,但同样无法访问所有软件包。也就是说,npm无法通过纱线找到全局安装的任何东西。或者,例如,在使用yarn全局安装gulp之后,我发现gulp在命令行上不可用(并且在c:\ program files \ nodejs中找不到它的cmd文件)。
所以我卸下了纱线msi。然后,我使用npm i --global yarn
重新安装了纱线,作为suggested here。最后,这导致纱线与当前的nvm受控节点版本相关联。优异。
但是,当我再次尝试使用yarn来安装全局软件包时,我发现它们安装不正确。比如我跑了:
nvm use 5.11.0
yarn global add jspm gulp karma karma-cli
软件包安装成功,但是当我从命令行尝试“gulp”时,它不可用。此外,当我npm ls --global --depth=1
时,我发现我安装的软件包无处可寻。如果我尝试yarn global ls --depth=0
,我需要花很长时间才能告诉我我的软件包(jspm,gulp,karma,karma-cli)实际安装完毕。
更糟糕的是,我后来决定做以下事情:
nvm use 7.3.0 //fresh node install...no packages installed
npm i --global yarn
yarn global ls
然后,yarn命令显示我在nvm use 5.11.0
生效时全局安装的相同软件包。简而言之,纱线坚持某种全局安装位置(与nvm控制节点版本看到的不同)。我也不知道纱线保留那些全局包的文件位置,所以我不确定卸载的“干净”我可以尝试。
简而言之,我认为yarn和nvm不兼容。这是对的吗?
我发现issue 1491可能包含我的答案。我了解到:
%LocalAppData%\Yarn
我认为纱线在我安装nvm之前工作的原因,只是我没有尝试过使用安装全局软件包......因此还没有注意到这个bug。简而言之,我认为nvm很好。但是,我现在觉得我在浪费时间使用npm i --global yarn
方法来安装纱线......因为纱线无论如何都会把所有的全球包裹放到一个地方。而且,由于当前的错误,我应该用来安装全局包的唯一工具是npm本身。
答案 0 :(得分:1)
是一段时间前您问的,但我只是跳过了您的问题。
您可以简单地在全局范围内安装yarn作为节点模块:
<div class='container'>
这在使用nvm-windows时非常有效。
其他提示:由于要使用nvm切换到新的节点版本,需要重新安装所有全局安装的节点模块,因此我开始使用 npm i -g yarn
代替yarn
来管理除以下各项以外的所有其他全局模块npm和纱线本身。这样,更新节点非常轻松。