2

简介

Yarn是一个JavaScript包管理器,是npm的直接竞争对手,它是Facebook开源项目之一。

它与npm软件包兼容,因此它具有作为npm的直接替代品的巨大优势。

因为并行下载和缓存,它在刚推出时候,启动速度比npm快很多。虽然现在npm也追赶上了它的许多功能,但是Yarn仍是我推荐的解决方案。

Yarn和npm的关系,就好比不同的下载软件。去下载同一个资源,使用不同的下载工具而已。

工具发展到一定程度,彼此间在功能和使用体验上就会逐渐趋同。因此竞争对我们的用户来说是好事,npm也会借鉴和实现其他好的功能特性。

安装Yarn

虽然您可以使用npm(npm install -g yarn)安装Yarn,但Yarn团队不推荐使用它。

系统特定的安装方法在https://yarnpkg.com/zh-Hans/d...。例如,在macOS上,您可以使用Homebrew,并运行:

每个操作系统都有自己的包管理器,可以使安装流程非常简单顺利。

最后,您会得到shell中可用的yarn命令:

管理包

Yarn将其依赖项写入名为package.json的文件,该文件位于项目的根文件夹中,并将依赖项文件存储到node_modules文件夹中,就像npm(如果您以前使用过它)一样。

初始化一个新项目

安装现有项目的依赖项
如果您已经有一个包含依赖项列表的package.json文件但尚未安装软件包,请运行

yarn

或者

yarn install

来开始安装过程。

局部本地安装软件包

把包安装在本地项目中,使用:

yarn add package-name

全局安装软件包

yarn global add package-name

在本地安装软件包作为开发依赖项

yarn add --dev package-name
等价于npm中的 --save-dev 或 -D

删除软件包

yarn remove package-name

检查许可证

安装许多依赖项时,可能会有很多其他依赖项。您需要安装许多软件包,而您对这些软件包使用的许可证一无所知。

Yarn提供了一个方便的工具,可以打印您拥有的任何依赖项的许可证

yarn licenses list

它还可以自动生成免责声明,包含您项目中的所有许可证:

yarn licenses generate-disclaimer

检查依赖项

您是否检查过node_modules文件夹,并想知道为什么安装了特定的软件包?yarn why 命令会告诉你:

yarn why package-name

升级依赖包

如果要升级单个程序包,请运行

yarn upgrade package-name

要升级所有包,请运行

yarn upgrade

但是这个命令有时会导致问题,因为盲目升级而没有考虑到主版本的变化,可能会导致项目编译和运行失败。某个软件包大版本的更新,很可能会影响现有代码的使用。

Yarn有一个很好的工具,可以让你有选择地更新项目中的包,这对上个问题有很大的帮助:

yarn upgrade-interactive --latest

--latest:该标志告诉Yarn忽略package.json指定的版本范围,并使用latest注册表中标记的版本

如何升级Yarn

如果您使用brew安装它,如上所述,请使用:

brew upgrade yarn

或者使用npm:

npm uninstall yarn -g
npm install yarn -g

Windows用户,安装和升级部分,请自行翻阅文档:https://yarnpkg.com/zh-Hans/d...

图片描述

图片描述


前端知否
714 声望49 粉丝

to be is to do