yarn.lock `__metadata` 中的 `version` 是什么?

What is the `version` in yarn.lock `__metadata`?

在我的 yarn.lock 文件的顶部,我看到:

__metadata:
  version: 5
  cacheKey: 8

我不知道 versioncacheKey 是什么,我也没有在 yarn 的网站上找到它们的任何文档。它们是什么?

简直就是yarn.lock version, originally introduced here:

When upgraded, the lockfile entries have to be resolved again (but the specific versions are still pinned, no worry). Bump it when you change the fields within the Package type; no more no less.

有关当前实施的解析逻辑的更多详细信息:

github.com/yarnpkg/berry/blob/master/packages/yarnpkg-core/sources/Project.ts


典型场景

我的锁文件版本发生了变化,因为尽管 运行 brew upgrade 获取最新版本,然后用 yarn -v.

验证

然而,机器人(可能是团队成员)已经将 Yarn 升级到 3.2.0-rc.12,版本控制/提交/锁定在 .yarnrc.ymlnpm.packageManager (example).

这是我们想要的一致性,所以我们可以添加一个 package.json 脚本来代替它

// ...
  "scripts": {
    // ...
    "setup": "yarn",
    // ...
// ...