0

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

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

chokidar dependencies

它有不同的手表包版本,所以我锁定了一个包

resolutions在我的包文件中。

它是 watchpack^2.0.0-beta.7 所有测试都开始工作了!

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

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

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

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

粉笔依赖

有些依赖。依赖,有 7 个版本!

4

1 回答 1

2

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

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

如果 Yarn 找不到满足所有依赖项的版本,它会将条目分成组,并获取一个版本来匹配每个组的条件。

至于你的第二个问题:它只使用一个版本的 Chokidar:3.1.1

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

于 2019-09-26T20:39:36.247 回答