简介

Yarn与npm一样,都是包管理工具。

但是Yarn比npm更高效,具有包缓存机制,下载过的包,无需再次下载,直接引用。

安装

参考文档:官方文档_安装

因为Node.js默认使用npm作为包管理工具。

有这样一个全局包corepack,这个包为我们提供了yarnpnpm这两个包管理工具,这个可以认为是yarn的版本管理工具。有了corepack,我们就可以直接使用yarn了。

  • 如果你的Node.js的版本是>=16.10,那么corepack已经默认安装为了全局包,我们只需要运行以下命令来启用yarn
// 先启用corepack
corepack enable
// 启用yarn
corepack enable yarn

(建议在管理员身份下运行)

  • 如果你的Node.js版本< 16.10,那么corepack这个包还没有安装,需要安装一下
// 安装corepack
npm i corepack -g

// 启用yarn
corepack enable yarn

更新yarn版本

# 更新到指定版本
yarn set version <version>

# 更新到最新版
yarn set version latest

# 更新到最新稳定版
yarn set version stable

配置

yarn毕竟也是海外的,网络原因,下载依赖时,可能会受影响,所以要修改下载镜像

这里利用一个工具来快速修改镜像地址,这个工具是yrm(还记得nrm吗?)

安装yrm

npm i yrm -g

查看当前所有可用的镜像源

yrm ls

      npm ---- https://registry.npmjs.org/
      cnpm --- http://r.cnpmjs.org/
    * taobao - https://registry.npm.taobao.org/
      nj ----- https://registry.nodejitsu.com/
      rednpm - http://registry.mirror.cqupt.edu.cn/
      npmMirror  https://skimdb.npmjs.com/registry/
      edunpm - http://registry.enpmjs.org/
      yarn --- https://registry.yarnpkg.com

测试某一个镜像的速度

yrm test taobeo

选择使用一个镜像

yrm use taobao

参考文章

yarn国内加速,修改镜像源

用法

初始化一个新项目

yarn init

安装所有的依赖

yarn 
yarn install

添加、安装依赖项

yarn add [package]
yarn add [package]@[version]

# 添加到开发依赖
yarn add [package] --dev
yarn add [package] --D

# 添加到生产依赖
yarn add [package] --peer
yarn add [package] --P

更新依赖项

yarn up [package]

yarn up [package]@[version]

删除依赖项

yarn remove [package]

运行自定义脚本

yarn run [脚本]

运行包中的命令(与npx相同),此命令会在安装并运行包中的命令

yarn dlx <command>...

注意:

yarn的全局版本是1.x,但是现在都已经出到了3.x

要注意:全局的yarn 与项目中的yarn是不同的,会优先使用项目中的yarn

使用yarn init来创建项目时,只会生成一个package.json文件,而且package.json中并未指定yarn版本,所以使用的是全局的1.x版本的yarn,在使用时总能遇到各种各样的麻烦。

那么在项目中如何使用yarn3.x呢?

  1. 在创建项目时直接指定yarn版本
yarn init -2

这样,生成的项目中会有一个.yarn文件夹,这个文件夹就是目前最新版的yarn,在项目中使用yarn时,实际就是运行的.yarn文件夹中的yarn,同时在package.json文件中也给出了项目使用的包管理是yarn以及版本

同时还会有.yarnrc.ymlyarn.lock文件

  1. 如果你的项目已经创建好了,那么使用以下命令来更新项目中的yarn版本

以下三条命令都是等价的,执行一个就可以

yarn set version stable

yarn set version latest

yarn set version berry

yarn2.x的版本号也叫做berry版本

执行以上命令后,就会在项目中生成.yarn文件夹,以及.yarnrc.ymlyarn.lock文件

同时会在package.json中指定yarn的版本

然后执行以下命令来将yarn版本同步到yarn.lock

yarn
# 或
yarn install

npm与yarn的对比

作用

npm

yarn

初始化项目

npm init -y

yarn init -y

安装项目依赖

npm install / npm i

yarn / yarn install

添加依赖

npm install [package]@[version]

yarn add [package]@[version]

更新依赖

npm update [package]@[version]

yarn up [package]@[version]

移除依赖

npm uninstall [package]

yarn remove [package]

运行自定义脚本

npm run

yarn run

下载并运行命令

npm init command

yarn create command