我想知道每一行到底是什么意思? 由于我的项目中存在依赖关系,我在使用软件包时遇到了一些问题。
首先,将 nuxt 从 1x 更新到 2x 后,所有测试都开始失败。 经过几个小时的网络挖掘后,我发现我有 2 个版本的
chokidar 依赖项
它有不同的 watch 包版本,所以我用它锁定一个包
我的包文件中的解决方案
。
这是 watch 包^2.0.0-beta.7
所有测试开始工作!
但不幸的是开发者模式停止支持热重载... 并开始崩溃。
所以我尝试将 chokidar 锁定到版本“^3.0.2”
,现在一切都很好!
但我开始想知道这个文件中的所有内容是如何工作的 因为锁定 chokidar 后所有问题都消失了!
那条线到底是什么意思?使用哪种 chokidar?两个都?第一的?第二? 或者甚至在这里
有些取决于。 depenc,有7个版本!
最佳答案
据我了解(如果我错了,请纠正我),第一行列出了所有依赖项,因此您有例如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/
关于javascript - Lockfile解释,每一行到底是什么意思? yarn 锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58123979/