非常教程

Yarn参考手册

组态 | Configuration

5. yarn.lock

为了获得跨机器的一致安装,Yarn需要比您在配置中的依赖更多的信息package.json。Yarn需要存储每个依赖项的安装版本。

为此,Yarn 在项目的根目录中使用一个文件yarn.lock。这些“锁文件”看起来像这样:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
package-1@^1.0.0:
  version "1.0.3"
  resolved "https://registry.npmjs.org/package-1/-/package-1-1.0.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
package-2@^2.0.0:
  version "2.0.1"
  resolved "https://registry.npmjs.org/package-2/-/package-2-2.0.1.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
  dependencies:
    package-4 "^4.0.0"
package-3@^3.0.0:
  version "3.1.9"
  resolved "https://registry.npmjs.org/package-3/-/package-3-3.1.9.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
  dependencies:
    package-4 "^4.5.0"
package-4@^4.0.0, package-4@^4.5.0:
  version "4.6.3"
  resolved "https://registry.npmjs.org/package-4/-/package-4-2.6.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"

这与Bundler或Cargo等其他软件包管理器中的锁文件相当。它与npm相似npm-shrinkwrap.json,但它不具有损耗性,并且可产生可重现的结果。

由Yarn管理

您的yarn.lock文件是自动生成的,应完全由Yarn处理。当您使用Yarn CLI添加/升级​​/删除依赖项时,它将自动更新您的yarn.lock文件。不要直接编辑这个文件,因为很容易破坏某些东西。

仅限当前包

在安装期间,Yarn只会使用顶层yarn.lock文件,并会忽略yarn.lock依赖项中存在的任何文件。顶层yarn.lock文件包含Yarn需要锁定整个依赖关系树中软件包版本的所有内容。

检查到源代码管理

所有yarn.lock文件都应该检入源代码控制(例如git或mercurial)。这允许Yarn在所有机器上安装相同的精确依赖关系树,无论它是您的同事的笔记本电脑还是CI服务器。

框架和库作者也应该检查yarn.lock源代码管理。不要担心发布yarn.lock文件,因为它不会影响库的用户。

Yarn

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

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

Yarn目录