Bre*_*ias 6 windows node.js npm nvm yarnpkg
Yarn一直在为我工作,直到我决定需要多个版本的节点.所以我按照以下指南的说明卸载了纱线并安装了nvm
然后我使用msi安装程序成功重新安装了纱线.不幸的是,yarn global add [name]在一个看似跨越所有nvm控制节点版本的位置安装了软件包,但所有软件包同样无法访问.也就是说,npm无法通过纱线找到全局安装的任何东西.或者,例如,在使用yarn全局安装gulp之后,我发现gulp在命令行上不可用(并且在c:\ program files \nodejs中找不到它的cmd文件).
所以我卸载了纱线msi.然后我npm i --global yarn按照这里的建议简单地重新安装纱线.最后,这导致纱线与当前的nvm受控节点版本相关联.优秀.
但是,当我再次尝试使用yarn来安装全局软件包时,我发现它们没有正确安装.比如我跑了:
nvm use 5.11.0
yarn global add jspm gulp karma karma-cli
Run Code Online (Sandbox Code Playgroud)
软件包安装成功,但是当我从命令行尝试"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
Run Code Online (Sandbox Code Playgroud)
然后,yarn命令显示我nvm use 5.11.0在生效时全局安装的相同软件包.简而言之,纱线坚持某种全局安装位置(与nvm控制节点版本看到的不同).我也不知道纱线保存那些全局包的文件位置,所以我不确定卸载的"干净"我可以尝试.
简而言之,我认为yarn和nvm不兼容.它是否正确?
我发现问题1491可能包含我的答案.我了解到:
%LocalAppData%\Yarn我认为纱线在我安装nvm之前工作的原因,只是我没有尝试过使用安装全局软件包......因此还没有注意到这个bug.简而言之,我认为nvm很好.然而,我现在觉得我浪费时间使用npm i --global yarn安装纱线的方法...因为纱线无论如何都会简单地将所有的全球包裹放入一个地方.而且,由于当前的错误,我应该用来安装全局包的唯一工具是npm本身.
你刚才问过,但我刚刚跳过了你的问题。
您可以简单地将yarn安装为全局节点模块:
npm i -g yarn
Run Code Online (Sandbox Code Playgroud)
当使用 nvm-windows 时,这非常有效。
附加提示:由于使用 nvm 切换到新的节点版本需要重新安装所有全局安装的节点模块,因此我开始使用而yarn不是npm管理除 npm 和纱线本身之外的所有其他全局模块。这样,更新节点就非常轻松了。
2023 年更新:事实上,我目前尽可能选择 pnpm,也是为了管理全局内容。
请注意,现在有一些工具可以自动切换包管理器,以防您同时处理多个项目并且往往忘记哪个项目使用哪个包管理器,例如ni或swpm。但我还没有尝试过这些。
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |