yarn 是在工作中离不开的工具,但在工作中,很多人基本只会使用 yarn install,而且会手动删除 node-modules,或删除 yarn.lock 文件等不规范操作。本文将从一些基础的知识点开始介绍,循序渐进的让你对 Yarn 有一个更深入的了解,来保证规范的使用yarn,避免一些隐藏bug的产生。
本文主要介绍以下知识:
- 什么是registry
- 依赖的版本含义及写法
- 依赖类型及区别(devDependences,devDependences,peerDependences, optionalDependencies,bundledDependencies)
- 缓存介绍
- yarn.lock 文件作用及介绍
- yarn install 安装依赖的过程
- 依赖关系树的模块扁平化
- 常用的 yarn 命令介绍
什么是registry
registry是 模块仓库提供了一个查询服务,也就是我们常说的源。以yarn官方镜像源为例,它的查询服务网址是https://registry.yarnpkg.com。
这个网址后面跟上模块名,就会得到一个 JSON 对象,里面是该模块所有版本的信息。比如,访问 https://registry.npmjs.org/vue,就会看到 vue 模块所有版本的信息。
registry 网址的模块名后面,还可以跟上版本号或者标签,用来查询某个具体版本的信息。 https://registry.yarnpkg.com/vue/2.6.10
上面返回的 JSON 对象里面,有一个dist.tarball属性,是该版本压缩包的网址。dist.shasum 属性相当于hash值,在lock和缓存时会使用到,下文会提到。
上面返回的 JSON 对象里面,有一个dist.tarball属性,是该版本压缩包的网址。dist.shasum 属性相当于hash值,在lock和缓存时会使用到,下文会提到。
dist: { "shasum": "a72b1a42a4d82a721ea438d1b6bf55e66195c637