简介
Yarn与npm一样,都是包管理工具。
但是Yarn比npm更高效,具有包缓存机制,下载过的包,无需再次下载,直接引用。
安装
参考文档:官方文档_安装
因为Node.js默认使用npm作为包管理工具。
有这样一个全局包corepack
,这个包为我们提供了yarn
、pnpm
这两个包管理工具,这个可以认为是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 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呢?
- 在创建项目时直接指定yarn版本
yarn init -2
这样,生成的项目中会有一个.yarn
文件夹,这个文件夹就是目前最新版的yarn,在项目中使用yarn时,实际就是运行的.yarn
文件夹中的yarn,同时在package.json
文件中也给出了项目使用的包管理是yarn以及版本
同时还会有.yarnrc.yml
、yarn.lock
文件
- 如果你的项目已经创建好了,那么使用以下命令来更新项目中的yarn版本
以下三条命令都是等价的,执行一个就可以
yarn set version stable
yarn set version latest
yarn set version berry
yarn2.x的版本号也叫做berry版本
执行以上命令后,就会在项目中生成.yarn
文件夹,以及.yarnrc.yml
、yarn.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 |