如何使用yarn安装全局包

时间:2017-05-10 14:19:25

标签: node.js npm yarnpkg

yarn install -h表示-g(全局)选项为DEPRECATED。我该如何表明我想在全球范围内安装一堆软件包(来自package.json / yarn.lock个文件)?

我看到的选项:

  • yarn global [command]包含lsadd但不包含install的内容。如果我理解正确,add仅适用于特定包名称。我已准备好yarn.lock文件,我不想在命令行上重复自己。
  • 每个包裹
  • yarn global add一个接一个。现在我的包列表将是必要的而不是声明性的。

特别是,我想使用其中一个软件包中的一个可执行文件。

7 个答案:

答案 0 :(得分:45)

简单输入

yarn global add nodejs

答案 1 :(得分:20)

  

我应该如何表明我想在全球范围内安装一堆软件包(来自package.json / yarn.lock文件)?

你没有。不鼓励全球安装,并且很少有情况需要,甚至是有帮助的。

the documentation中所述:

  

对于绝大多数软件包而言,拥有全局依赖项被认为是一种不好的做法,因为它们是隐含的。最好在本地添加所有依赖项,以便它们是显式的,并且使用您的项目的任何其他人都获得相同的依赖项集。

     

如果您尝试使用具有bin的CLI工具,则可以在./node_modules/.bin目录中访问这些工具。

如果您有执行想要全局安装它,请使用yarn global add,但不要期望在全球范围内轻松安装大量依赖项 - 这很难做到< em> by design ,因为它不是一个好主意。

相反:

  • 在本地安装所有内容,因此每个项目都是隔离的
  • 尽可能从./node_modules/.bin拨打二进制文件
  • 避免全局安装 - 这是一种方便,但不是你应该依赖的。

答案 2 :(得分:11)

对于那些感兴趣的人,这是一种安装和管理通过纱线安装的全球应用程序的方法。

首先创建一个包含应用程序的目录,例如~/.yarn-global

mkdir ~/.yarn-global
cd ~/.yarn-global

然后从这里安装您的应用程序:

yarn add yourapp

最后打开您的个人资料文件,即.bashrc.bash_profile,并添加bin目录的路径:

export PATH="$HOME/.yarn-global/node_modules/.bin:$PATH"

从现在开始,您在此目录中安装的任何应用程序都可以在shell中的任何位置使用。

完成此操作后,您甚至可以创建仅在此.yarn-global目录中运行的yarn-global实用程序脚本。例如:

sudo vim /usr/bin/yarn-global
sudo chmod 755 /usr/bin/yarn-global

脚本内容将是:

#!/bin/bash
cd "$HOME/.yarn-global"
yarn $1 "$2"

现在您可以执行yarn-global add someappyarn-global upgrade someapp

答案 3 :(得分:1)

由于容器化已成为本地应用程序开发和部署到每个环境的规范,因此这些约定变得不那么重要了。每个容器映像都是其自己的服务器,您可以使用Dockerfile和docker-compose(或其他将应用程序容器化的方法)与其他开发人员共享整个开发环境。使用此策略,我可以在部署到产品的确切环境上进行开发,例如操作系统,库,版本等。但是,要在Mac或Windows机器上开发容器化的应用程序,需要将虚拟机+本地主机安装目录安装到VM,然后从VM进行docker卷安装。当node_modules是该卷安装的一部分时,运行速度会非常慢。如果开发人员改善了他们的开发经验,为什么不能选择不做“推荐”的事情呢?我认为应该重新考虑。

答案 4 :(得分:0)

npm install -g markdown-toc

纱线决定不支持此功能。

答案 5 :(得分:0)

Yarn将所有全局软件包添加到您家中的.yarn文件夹中:~/.yarn/bin

所以您必须将其导出为:

export PATH="$PATH:$HOME/.yarn/bin"

或将其添加到主文件夹中的.bashrc文件中

答案 6 :(得分:-1)

对于全球纱线安装,只需键入

npm install -g yarn

确保已在系统上安装Node。使用以上命令可以将纱线包全局安装。

注意-“安装”现已替换为“添加”(仅适用于软件包)