如何用纱线安装全局包
yarn install -h
build议-g
(全局)选项是DEPRECATED
。 我应该如何表示我想要一堆包(从package.json
/ yarn.lock
文件)全局安装?
我看到的选项:
-
yarn global [command]
有东西,如ls
和add
但不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 someapp
, yarn-global upgrade someapp
等。