yarn.lock

为了保持跨机器安装的一致性,您在 package.json 中设置的依赖不能满足 Yarn 的需求, 它需要更多的信息。 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 或者 Carge)中的锁文件作比。 它很像 npm 中的 npm-shrinkwrap.json,但是它不容易损坏,而且能够创造可复制的一致结果。

通过 Yarn 管理

您的 yarn.lock 文件由 Yarn 自动创建,并且完全通过 Yarn 进行操作。 当您通过 Yarn 指令进行 添加/更新/移除 依赖包时,它将自动帮您更新 yarn.lock 文件。 请不要手动地直接编辑该文件,因为这容易让某些东西损坏。

检查源码管理器

所有 yarn.lock 文件需要添加进源码管理器(比如 git 或者 mercurial)。 这使得 Yarn 能够跨机器安装完全一致的依赖树,无论是您同事的笔记本电脑还是一个持续集成服务器。

← 上一页: package.json