使用Yarn或NPM安装全局包有什么区别吗?

9

使用 yarn global add PACKAGEnpm install -g PACKAGE 安装全局包是否有区别?

两者之间有什么不同,例如文件安装位置吗?如果有,具体是哪些方面呢?


这是一个通用问题还是你有一个特定的问题,两者之间存在差异? - Tarun Lalwani
2
我怀疑在使用yarn和npm安装全局包时会有不同的行为,但我不能确定。这就是为什么我要问的原因。 - Andreas
请问您能否澄清一下您遇到问题的几个软件包的名称? - VAT
2个回答

6

是的,你说得对,这是不同的。对于 npm ,它大概如下所示:

/Users/tarunlalwani/.nvm/versions/node/v9.2.0/lib (如果你正在使用 nvm)

你可以使用以下命令获取此路径:

$ npm config get prefix
/Users/tarunlalwani/.nvm/versions/node/v9.2.0

npm在哪里安装软件包?

而yarn使用其他路径

  • Windows: %LOCALAPPDATA%/Yarn/config/global
  • OSX和Linux非root用户:~/.config/yarn/global
  • Linux如果以root身份登录:/usr/local/share/.config/yarn/global

如何显示全局安装的yarn软件包?

也可以参考这个线程

https://github.com/yarnpkg/yarn/issues/2049


1
那么这个路径差异是否意味着,使用 Yarn 时全局包不会关联到您的 NVM Node 版本?这意味着如果您使用 NVM,则应该使用 npm 而不是 yarn 来安装全局包? - AlecRust
@AlecRust nvm 在其受版本控制的目录下安装了 yarn。因此,如果您打印出 which yarn,它将安装在类似于 /Users/{username}/.nvm/versions/node/{version}/bin/yarn 的目录中。因此,在使用 nvm 时,无论是使用 npm 还是 yarn 进行全局安装都没有问题。 - Aningaaq

-1

这是有关Yarn global的文档。

yarn global是一个前缀,用于许多命令,如add、bin、list和remove。它们的行为与普通版本完全相同,只是使用全局目录来存储软件包。全局命令使可执行文件能够在您的操作系统上使用

这是npm install global mode的文档。

在全局模式下(即将-g或--global附加到命令中),它将当前软件包上下文(即当前工作目录)安装为全局软件包。

我认为它们之间没有区别。将软件包安装为全局软件包对于开发人员工具非常有用,它不是任何单个项目的一部分,而是用于本地命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接