美文网首页
Yarn依赖与版本

Yarn依赖与版本

作者: 前白 | 来源:发表于2021-04-14 11:46 被阅读0次

本节我们来讲 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 的软件包遵守语义版本控制,也叫作 “semver",也就是说当我们从资源库安装一个新包,它会和语义版本范围一起被添加到我们的 package.json 文件中。

版本号可以划分为 主版本号.次版本号.修订号,类似于 1.0.0、1.1.2,不同的情况对应不同的版本号增长,如下所示:

  • 主版本号:新的版本不兼容老版本的 API。
  • 次版本号:新的版本新增了部分功能并向下兼容。
  • 修订号:新的版本修复部分 bug 并向下兼容。

有些时候,除了版本号以后还会出现一些特殊字符,例如 >=,<,^ 和 ~ ,这些是运算符,可以用来指定版本范围。版本范围的用处是标明依赖的哪个版本会在代码中起作用。举个例子,像 >2.1.0 表示大于 2.1.0 版本、=4.3.1 表示等于 4.3.1 版本。如果不指定运算符,则表示等于某个版本。

选择性依赖项解决

Yarn 支持选择性版本解析,package.json 文件里的 resolutions 字段用于解析选择性版本,可以通过此功能自定义依赖版本。这通常需要在 yarn.lock 文件中进行手动编辑。

示例:

在 package.json 文件中添加一个 resolutions 字段用于覆盖版本定义:

{
  "name": "project_name",
  "version": "1.0.0",
  "dependencies": {
    "left-pad": "1.0.0",
    "c": "file:../c-1",
    "d2": "file:../d2-1"
  },
  "resolutions": {
    "d2/left-pad": "1.1.1",
    "c/**/left-pad": "1.1.2"
  }
}

然后运行 yarn install 命令即可。

注意如果是下面几种情况,会出现警告:

  • 定义了无效的版本解析规则,例如错写了无效的包名。
  • 定义的版本解析的版本号、版本范围无效。
  • 定义的版本解析规则的版本号、版本范围与原始版本范围不兼容。

相关文章

  • Yarn依赖与版本

    本节我们来讲 Yarn 中的依赖与版本。软件包依赖关系对于包的成功是至关重要的,当开发软件包时,我们可能会用到其他...

  • Yarn依赖与版本

    本节我们来讲 Yarn 中的依赖与版本。软件包依赖关系对于包的成功是至关重要的,当开发软件包时,我们可能会用到其他...

  • Yarn命令操作

    版本查看:yarn -v建立新工程 :yarn init添加依赖包:yarn add安装全局依赖包:yarn gl...

  • vue_如何搭建一个新项目(yarn)

    安装yarn 查看yarn版本 配置 Yarn 走 Taobao 源 全局安装 vue-cli 创建项目 安装依赖...

  • yarn

    官方文档yarn upgrade 升级依赖 如果提示有新版本,但是当前版本不是最新的,运行yarn 就会自动安装更...

  • yarn 依赖包版本升级

    需注意的是依赖的依赖没办法指定升级的,需要第一级的依赖升级了它才行 来源: https://stackoverfl...

  • yarn常用命令

    yarn安装 npm i yarn -g 查看版本 yarn -v 开始一个新工程 yarn init 与 npm...

  • yarn

    yarn解决了npm的一些小问题,如依赖版本锁定等,并行安装速度更快 安装 常用CLI命令 Yarn提供了丰富的命...

  • 通过umi脚手架创建ant-design-pro项目

    环境准备 首先得有 node,并确保 node 版本是 8.10 或以上。推荐使用 yarn 管理 npm 依赖。...

  • taro 安装使用问题

    安装指定的版本 OR 使用 yarn 安装 CLI 然后升级项目依赖 删除 taro 创建项目 如果遇到 (nod...

网友评论

      本文标题:Yarn依赖与版本

      本文链接:https://www.haomeiwen.com/subject/qutvkltx.html