作为更快更高更强的包管理工具yarn的出现无疑赚走了npm的一部分市场。今天我们暂不究其原理,只刷文档,能用就行。
创建一个新项目
执行命令:yarn init
其后将打开一个用于创建yarn项目的交互式表单
1  | name(your-project):  | 
跟你用npm init一样,一般咱们这不讲究的就全回车默认配置了。
完成后他会创建一个和下面文件内容类似的package.json
1  | {  | 
管理依赖项目
添加依赖包
众所周知使用npm时是通过npm install [package]来完成依赖包的安装。而yarn则是通过yarn add [package]来对依赖进行装载。效果同npm那句相同,[package]都会被加入到package.json的依赖列表中,同时yarn.lock也会被更新。
当然,我们还可以通过参数添加其他类型的依赖
1  | yarn add --dev 添加到devDependencies  | 
而版本号也一样,yarn add package@1.1.0即可
更新依赖包
1  | yarn upgrade [package]  | 
这会更新package.json和yarn.lock
1  | {  | 
移除依赖包
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的同一级结构中)