yarn install -h
表示-g
(全局)选项为DEPRECATED
。我该如何表明我想在全球范围内安装一堆软件包(来自package.json
/ yarn.lock
个文件)?
我看到的选项:
yarn global [command]
包含ls
和add
但不包含install
的内容。如果我理解正确,add
仅适用于特定包名称。我已准备好yarn.lock
文件,我不想在命令行上重复自己。yarn global add
一个接一个。现在我的包列表将是必要的而不是声明性的。特别是,我想使用其中一个软件包中的一个可执行文件。
答案 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 someapp
,yarn-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。使用以上命令可以将纱线包全局安装。
注意-“安装”现已替换为“添加”(仅适用于软件包)