前阵子,Facebook 开源了一款新的 Node.js 包管理器 —- Yarn,用来替代 NPM ,一时间引起了不少议论。有人认为这是重复在“造轮子”;有人跃跃欲试却浅尝辄止;有人却更多地关注 Yarn 给前端开发者带来的哪些好处,比如说网络速度。不管别人怎么看、怎么议论,也永远是道听途说,要想更深入地了解 Yarn,还是得自己亲自去试一试,毕竟实践是最有发言权的,不是吗?

废话呢,就不多说了,直接进入主题。今天就来认识一下它,作为菜鸟的我,(wen)水(cai)平(hen)有(shui)限,写的不对的地方,欢迎指正。😝

yarn-kitten-full

Yarn 是什么

Yarn 是 Node.js 代码的包管理器(类似 NPM )。 它允许你使用世界各地开发人员开发的代码,当然也可以共享你的代码。 Yarn 的优点是速度快,同时可以做到安全,可靠这一点,所以你不必担心。Yarn 允许你使用其他开发人员的解决方案来解决不同的问题,使你更容易开发自己的产品。因为,Yarn 令开发者可以更加迅捷和从容地享受前人栽种的果实,进而集中精力打造自己的产品 —- 这才是更加重要的事情。

在使用 Yarn 时,开发者们还像以前一样从 NPM 仓库那里获取资源,但安装速度更快,不同的机器的安装结果完全一致,甚至还可以在安全的离线环境中使用。代码通过称为包(有时称为模块)的东西共享。 包包含所有共享的代码以及描述包的package.json文件。

在Facebook,Yarn 作为 NPM 的替代物以解决随着代码体积的不断增长和团队规模的不断壮大,在一致性、安全性和性能方面遇到的问题,现在以开源的方式发布这个成果,它是由 Exponent、 Google、Tilde 与 Facebook 合作完成的。

安装

在使用 Yarn 之前,需要先在你的系统上安装 Yarn。Yarn 提供各种平台的安装包,无论你是使用 Mac、Windows 还是 Linux,甚至 Unix,都可以安装 Yarn。这里给大家介绍两种常用的系统安装 Yarn, Mac 和 Windows。

Mac OS

首先,你的电脑上得先安装 Node.js,如果没有没有安装,请去Node.js 官网下载自行安装。

  • Homebrew

Homebrew(http://brew.sh/),是 Mac 上强烈推荐的套件管理器,你可以通过 Homebrew 安装 Yarn,同时也可以通过 Homebrew 安装 Node。

1
2
brew update
brew install
  • 设置路径

您将需要在终端中设置PATH环境变量,以便全局访问Yarn的二进制文件。

在你的配置文件(如 .profile, .bashrc, .zshrc等)里面加上 export PATH="$PATH:$HOME/.yarn/bin"

最后测试一下,Yarn 是否已经安装成功。

1
yarn --version

Windows

Windows 安装 Yarn 可以通过以下两种方法安装。

  • 第一种,可以直接下载安装程序

Yarn 官网提供 .msi 安装文件供 Windows 用户进行下载安装。同样,你在安装 Yarn 之前,要先保证你已经安装了 Node.js。Yarn for Windows 最新安装包下载链接如下:

Download Installer

  • 第二种,通过 Chocolatey 安装

Chocolatey 是 Windows 的包管理器,您可以按照这些说明安装 Chocolatey 。

好了,安装完了 Chocolatey 之后就开始安装 Yarn 吧,在控制台里面输入以下命令:

1
choco install yarn
  • 路径设置

您将需要在终端中设置PATH环境变量,以便全局访问Yarn的二进制文件。将 set PATH =%PATH%; C:\。yarn \ bin 添加到您的 shell 环境中。

用 NPM 的方式去安装 Yarn

这就很尴尬了

这就很尴尬了,想要取代别人,却要通过别人安装,难道这就是传说中的青出于蓝而胜于蓝。😝虽然,这很尴尬,但比 Yarn 官网提供的那些安装方法真是爽的要死,另外,在我也是通过这种方式安装的,哎😌。来吧,我们开始通过 NPM 安装 Yarn吧。

1
npm install -g yarn

Mac 上安装成功截图如下:

Mac OS

Windows 上安装截图如下:

Windows

Windows

使用

Yarn 的使用很简单,虽然和 NPM 相似,但是又有所区别。

  • 初始化新项目
1
yarn init
  • 下载依赖包
1
2
3
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
  • 更新依赖包
1
2
3
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
  • 删除依赖包
1
yarn remove [package]
  • 下载项目所有的依赖包
1
yarn       # or yarn install

NPM vs Yarn 速查表

你需要知道的

  • npm install === yarn install 关键字可以省略。

  • npm install react --save === yarn add react React 包信息立即保存到你的package.json中。

  • npm uninstall react --save === yarn remove react --save 可以通过npm config set save true 在NPM中默认设置,但这对大多数开发人员来说是不明显的。 从package.json 中添加和删除是Yarn中的默认值。

  • npm install react --save-dev === yarn add react --dev

  • npm update react --save === yarn upgrade react
    强烈建议用 upgrade 来替代 update,因为这更能体现版本号变更。

  • npm install react --global === yarn global add react 对于全局安装,我们都会很谨慎。

你已经知道的

  • npm init === yarn init
  • npm link === yarn link
  • npm outdated === yarn outdated
  • npm publish === yarn publish
  • npm run === yarn run
  • npm cache clean === yarn cache clean
  • npm login === yarn login (and logout)
  • npm test === yarn test

Yarn 拥有,NPM 没有

  • yarn licenses — 允许您检查依赖项的许可证。
  • yarn licenses generate — 自动创建许可证依赖性免责声明。
  • 支持 Emojis
  • 支持速度滚动条
  • 自动生成 lock 文件(.lock 保存所有依赖包的版本信息)
  • 为安全而生

NPM 拥有,Yarn 没有

  • npm xmas
  • npm visnup

以下载 React 为例,实践一下

yarn react

参考