yarn初体验

作为更快更高更强的包管理工具yarn的出现无疑赚走了npm的一部分市场。今天我们暂不究其原理,只刷文档,能用就行。

创建一个新项目

执行命令:yarn init

其后将打开一个用于创建yarn项目的交互式表单

1
2
3
4
5
6
7
name(your-project):
version(1.1.0):
description:
entry point(index.js):
git repository:
author:
license(MIT):

跟你用npm init一样,一般咱们这不讲究的就全回车默认配置了。

完成后他会创建一个和下面文件内容类似的package.json

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "my_new_project",
"version": "1.0.0",
"description": "My New Project description",
"main": "index.js",
"repository": {
"url": "https://example.com/your-username/my-new-project",
"type": "git"
},
"author": "Your Name <you@example.com>",
"license": "MIT"
}

管理依赖项目

添加依赖包

众所周知使用npm时是通过npm install [package]来完成依赖包的安装。而yarn则是通过yarn add [package]来对依赖进行装载。效果同npm那句相同,[package]都会被加入到package.json的依赖列表中,同时yarn.lock也会被更新。

当然,我们还可以通过参数添加其他类型的依赖

1
2
3
yarn add --dev       添加到devDependencies
yarn add --peer 添加到peerDependencies
yarn add --optional 添加到optionalDependencies

而版本号也一样,yarn add package@1.1.0即可

更新依赖包

1
2
3
yarn upgrade [package]
yarn upgrade [package]@[verision]
yarn upgrade [package]@[tag]

这会更新package.jsonyarn.lock

1
2
3
4
5
6
7
{
"name": "my-package",
"dependencies": {
"package-1": "^1.0.0",
"package-2": "^2.2.0"
}
}

移除依赖包

1
yarn remove [package]

安装依赖项

我们可以通过yarn install来安装一个项目中所有的依赖项。Yarn 会自动从package.json中读取依赖,并将依赖信息存储到yarn.lock

  • 安装所有依赖:yarn install
  • 安装一个包的单一版本:yarn install --flat
  • 强制重新下载所有包:yarn install --force
  • 只安装生产环境依赖:yarn install --production

配合版本控制

  • yarn.lock用于记录每一个依赖项的确切版本信息(作用同package.lock.json

  • package.json则包函包的所有依赖信息

说道说道yarn.lock和package-lock.json

先说结论

package-lock.json是 npm5 之后默认生成的锁文件,而yarn.lock是 yarn 的锁文件

yarn.lock就好比是你的package-lock.json,不同的是package-lock.json有不完全扁平化的问题,而yarn.lock则把所有依赖包扁平化的展示了出来(同包名但semver不兼容的作为不同的字段放在了yarn.lock的同一级结构中)