如何用纱线安装全局包

yarn install -hbuild议-g (全局)选项是DEPRECATED 。 我应该如何表示我想要一堆包(从package.json / yarn.lock文件)全局安装?

我看到的选项:

  • yarn global [command]有东西,如lsadd但不install 。 如果我理解正确,请仅add特定软件包名称。 我已经准备好了我的yarn.lock文件,我不想在命令行重复自己。
  • yarn global add逐一yarn global add每个包装。 现在我的软件包列表将是必要的,而不是声明式的。

具体来说,我想使用其中一个包中的一个可执行文件。

我应该如何表示我想要一堆包(从package.json / yarn.lock文件)全局安装?

你没有 。 不鼓励在全球范围内进行安装,在极less数情况下,甚至是有用的。

正如文件中指出的那样:

对于绝大多数包来说,由于它们是隐式的,因此具有全局依赖性被认为是不好的做法。 最好在本地添加所有的依赖关系,这样它们是明确的,任何使用你的项目的人都可以获得相同的依赖关系。

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

如果在某些情况下你想要在全局安装它,请使用yarn global add ,但不要指望在全局范围内轻松地安装大量的依赖关系 – 这很难通过devise来完成,因为这不是一个好主意。

代替:

  • 在本地安装一切,所以每个项目都是孤立的
  • 尽可能从./node_modules/.bin中调用二进制文件
  • 避免全球安装 – 他们是一个方便,但不是你应该依靠的。

对于那些感兴趣的,这里有一种方法来安装和pipe理通过纱线安装的全局应用程序。

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

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

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

 yarn add yourapp 

最后打开您的configuration文件,即.bashrc.bash_profile并添加到bin目录的path:

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

从现在开始,你安装在这个目录下的任何应用程序都可以在shell中的任何地方使用。

一旦完成,您甚至可以创build一个yarn-global实用程序脚本,该脚本只能在.yarn全局目录中运行。 例如:

 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等。