非常教程

Yarn参考手册

依赖和版本 | Dependencies and versions

4. Selective dependency resolutions(选择性依赖项解析)

Yarn支持选择性版本解决方案,它允许您通过文件中的resolutions字段在您的依赖关系中定义自定义软件包版本package.json。通常,这需要在yarn.lock文件中进行手动编辑。

你为什么想做这个?

  • 您可能依赖于不经常更新的软件包,这取决于另一个进行了重要升级的软件包。在这种情况下,如果您的直接依赖项指定的版本范围不包含新的子依赖项版本,那么您就等待author。
  • 您项目的子依赖项获得了重要的安全更新,您不希望等待直接依赖项发布最低版本更新。
  • 你依赖一个无人维护,但工作包和其中一个依赖项得到升级。你知道升级不会破坏你的东西,你也不想分叉你所依赖的包,只是为了更新次要依赖。
  • 您的依赖性定义了一个广泛的版本范围,并且您的子依赖关系刚刚得到了一个有问题的更新,因此您希望将其固定到较早的版本。

如何使用它?

添加一个resolutions字段到你的package.json文件并定义你的版本覆盖:

package.json

{
  "name": "project",
  "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

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

主页 https://yarnpkg.com/
源码 https://github.com/yarnpkg/yarn
发布版本 1.3.2

Yarn目录