yarn快速上手使用
简介
Yarn 是一个 JS 包依赖管理器。官网:
特点:
- 快速。每个包都会被缓存,故只会下载一次。并行操作提速安装过程。
- 安全。使用检验和对每个已安装的包进行完全性检验,之后才会运行。
- 可靠。相同的依赖,无论安装次序,在所有的机器上都按同样方式安装。
安装
在 Ubuntu 上:
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn
如果安装失败,可以先尝试删除 cmdtest: sudo apt remove cmdtest。
虽然官方提供了很多安装方式,但太麻烦了,还是用最简单的吧
window
npm install -g yarn
其它系统
sudo npm install -g yarn
安装好后:
$ yarn --version
使用
创建一个项目
$ yarn init
添加依赖
$ yarn add package
$ yarn add package@version
$ yarn add package@tag
将依赖添加到不同的依赖目录
例如添加到 devDependencies, peerDependencies, optionalDependencies 等。
$ yarn add package --dev
$ yarn add package --peer
$ yarn add package --optional
升级依赖包
$ yarn upgrade package
$ yarn upgrade package@version
$ yarn upgrade package@tag
删除依赖
$ yarn remove package
安装项目中的所有依赖
$ yarn ## or
$ yarn install
包配置文件
每个包都有一个配置文件 package.json,Yarn 据该文件识别每个包,并进行处理。
Yarn 会在项目的根目录下创建一个 yarn.lock 文件,用于管理依赖关联,我们无需修改该文件,并需要将该文件包含进代码库中。
package.json
name 和 version 项组合成一个唯一的标识。
开发和生产环境下都需要的依赖放在 dependencies 下,如:
{
"dependencies": {
"package-1": "^3.1.4"
}
}
可以指定精确的版本,最小版本 >=,一个版本区间 >= … <。
开发环境下的依赖放在 devDependencies 中:
{
"devDependencies": {
"package-2": "^0.4.2"
}
}
peerDependencies 可用来声明你的包与其它包的兼容性:
{
"peerDependencies": {
"package-3": "^2.7.18"
}
}
optionalDependencies 中的包若没有找到,安装过程也会继续:
{
"optionalDependencies": {
"package-5": "^1.6.1"
}
}
bundledDependencies 中的包,当你的包发布时,会一起打包进来:
{
"bundledDependencies": [
"package-4"
]
}
Yarn 工作流
创建 Yarn 工程
一般在项目的根目录下运行 yarn init 命令,回答一些项目相关的问题,之后创建一个 package.json 文件,用来保存项目及其依赖信息。
管理依赖
使用 Yarn 的 add, upgrade, remove 等命令来管理依赖,这些命令会自动更新 package.json 及 yarn.lock 文件的内容。
安装依赖包
使用 yarn install 来安装项目的全部依赖包,依赖包信息从 package.json 中提取,并保存到 yarn.lock 文件中。
安装方式:
- 安装全部依赖: yarn 或 yarn install
- 每个包只安装一个版本: yarn install –flat
- 强制重装下载安装全部包: yarn install –force
- 只安装生产环境下的依赖: yarn install –production
版本控制
必须将以下 2 个文件加入代码库中。
- package.json: 包含当前的所有依赖信息。
- yarn.lock: 保存了每个已安装的依赖包的信息。
从 npm 迁移到 Yarn
Yarn 和 Npm 基本上是兼容的,Yarn 可以使用 npm 创建的 package.json,可以安装 npm registry 中的任何包。一般只需运行 yarn,将生成的 yarn.lock 文件加入代码库即完成迁移。见 https://yarnpkg.com/en/docs/migrating-from-npm。
初始化一个项目
yarn init
功能跟npm init 几乎一样
以默认值初始化
yarn init --yes
yarn init -y
与npm也雷同
npm init -f
添加依赖
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
正如npm以下命令一样
npm install [package]
npm install [package]@[version]
npm install [package]@[tag]
yarn install [package] --peer
还可以安装平行依赖呢
强制重装所有模块
yarn install --force
yarn 是从npm下载模块的,完全兼容已经在用npm的项目,可以无缝切换。 yarn 安装过后会在项目根目录下生成并自动管理yarn.lock文件,把这个文件加入到git版本控制中,这个文件记录了依赖安装的版本和结构信息,通过同步给别人,别人再用yarn安装,可以确保你们生成的目录结构和包版本信息完全一致。
参考
- https://yarnpkg.com/
- https://yarnpkg.com/en/docs/install
- https://yarnpkg.com/en/docs/yarn-workflow
- https://yarnpkg.com/en/docs/migrating-from-npm
- https://yarnpkg.com/en/docs/configuration