本节我们来讲 Yarn 中的依赖与版本。软件包依赖关系对于包的成功是至关重要的,当开发软件包时,我们可能会用到其他包里的现有代码来开发自己的软件包功能,那么其他包就可以称为项目的依赖项。
所有的项目依赖都在 package.json 文件中声明,每个依赖项都需要指名依赖名称和最低版本信息。而 yarn.lock 文件里保存了每个依赖的安装版本,来确保软件包在所有安装过程中保持一致。
依赖的类型
不同的依赖有着不同的目的,在构建项目时需要一些依赖项,在运行程序时也需要一些依赖项,因为有不同的依赖类型。
关于 package.json 文件可以包含的一些依赖类型如下所示:
{
"name": "my_yarn",
"dependencies": {
"package-a": "^1.1.0"
},
"devDependencies": {
"package-b": "^1.2.1"
},
"peerDependencies": {
"package-c": "^2.5.4"
},
"optionalDependencies": {
"package-d": "^3.1.0"
}
}
- dependencies:常规依赖,也就是运行代码时所需的依赖项。
- devDependencies:开发依赖,在开发工作流中某些时候需要的依赖关系,而在运行代码时则不需要。
- peerDependencies:同伴依赖,一种特殊类型的依赖项,只有在发布自己的程序包时才会出现。
- optionalDependencies:可选依赖,这种依赖即便安装失败,Yarn 也会认为整个依赖安装过程是成功的。
- bundledDependencies:打包依赖,在发布包时,这个数组里的包都将会被打包(bundle)。
依赖的版本
Yarn 的软