锁文件解释,每一行到底是什么意思? yarn.lock

Lockfile explanation, what exactly every line mean? yarn.lock

我想知道每一行到底是什么意思? 由于我项目中的依赖关系,我在使用包时遇到了一些问题。

首先将 nuxt 从 1x 更新到 2x 之后,所有测试开始失败。 在网上挖掘了几个小时后,我注意到我有 2 个版本的

chokidar dependencies

它有不同的 watchpack 版本,所以我用

锁定了一个包

resolutions 在我的包文件中。

是手表包^2.0.0-beta.7 所有测试开始工作!

但不幸的是开发者模式停止支持热重载... 并开始崩溃。

所以我尝试将 chokidar 锁定到 "^3.0.2" 版本,现在一切正常!

但我开始想知道这个文件中的一切是如何工作的 因为锁定 chokidar 后所有问题都消失了!

那条线到底是什么意思?使用哪个chokidar?两个都?第一的?第二? 或者甚至在这里

有些取决于。 depenc,有 7 个版本!

据我了解(如果我错了请纠正我),第一行列出了所有依赖项,因此您有例如7 个依赖于特定版本的粉笔的包。 第二行列出了 Yarn 'chosen' 要安装的版本,它满足上述条件。示例:Chokidar 为 3.1.1,因为条件指定一个包需要它大于 2.0.2,一个需要它大于 3.0.2。由于 3.1.1 满足两者,因此被使用。如果条件之一是 'exactly 3.0.2',则行将被拆分并且两个版本都将包含在锁定文件中。

第三行是包的 URL,带有哈希。 第四个也是一个散列,用于在下载时验证包 运行 yarn install.

如果 Yarn 找不到一个满足所有依赖关系的版本,它将把条目分成几组,并得到一个符合每个组标准的版本。

那么关于你的第二个问题:它只使用了一个版本的 Chokidar:3.1.1

有关一般说明,请参阅 https://yarnpkg.com/lang/en/docs/yarn-lock/