如何使用 Yarn 安装许多全局包的列表

How to install a list of many global packages with Yarn

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

我看到的选项:

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

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

你不应该。 Yarn 不鼓励全局安装,并且在极少数情况下它是必要的,甚至是有用的。

the documentation所述:

For the vast majority of packages it is considered a bad practice to have global dependencies because they are implicit. It is much better to add all of your dependencies locally so that they are explicit and anyone else using your project gets the same set of dependencies.

If you are trying to use a CLI tool that has a bin you can access these in your ./node_modules/.bin directory.

但我真的非常想要!

如果您真的不想听从给出的建议,请使用

yarn global add <package>

但是,不要期望在全局范围内轻松安装大量依赖项 - 设计很难做到,因为这不是一个好主意。


相反,Yarn 的预期流程是:

  • 在本地安装一切,因此每个项目都是独立的
  • 尽可能从 ./node_modules/.bin 调用二进制文件
  • 避免全局安装——它们很方便,但不是您应该依赖的。

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

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

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

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

yarn add yourapp

最后打开您的配置文件,即 .bashrc.bash_profile 并添加到 bin 目录的路径:

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

从现在开始,您在此目录中安装的任何应用程序都可以在 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  ""

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

只需输入

yarn global add nodejs

npm install -g markdown-toc

Yarn 决定不支持此功能。

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

因此您必须将其导出为:

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

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

随着容器化成为本地应用程序开发和部署到每个环境的规范,这些约定变得不那么重要了。每个容器镜像都是它自己的服务器,您可以使用 Dockerfile 和 docker-compose(或其他容器化应用程序的方法)与其他开发人员共享整个开发环境。使用此策略,我可以在部署到产品的确切环境中进行开发,例如OS、库、版本等。但是,在 Mac 或 Windows 机器上开发容器化应用程序需要虚拟 Machine + 本地主机安装目录到 VM,然后docker 卷从虚拟机装载。当 node_modules 是该卷安装的一部分时,它运行得非常慢。为什么开发人员不能选择做一些不是 'recommended' 的事情,如果它可以改善他们的开发体验?我认为这应该重新审视。

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

yarn global add nodejs

确保您的系统上已经安装了 Node。使用上面的命令可以全局安装 yarn 包。

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

纱线 2,以其无限的智慧,已经删除了 yarn global

如果你想 运行 一个包,比如 firebase-tools,你现在可以通过 yarn dlx firebase-tools <parameters> 来完成,而不是先安装它然后调用安装的包。

这是一个糟糕的决定,我希望 Yarn 恢复它。