锁文件解释,每一行到底是啥意思?纱线锁
Posted
技术标签:
【中文标题】锁文件解释,每一行到底是啥意思?纱线锁【英文标题】:Lockfile explanation, what exactly every line mean? yarn.lock锁文件解释,每一行到底是什么意思?纱线锁 【发布时间】:2020-01-27 03:45:01 【问题描述】:我想知道每一行到底是什么意思? 由于我的项目中的依赖关系,我在使用包时遇到了一些问题。
首先将 nuxt 从 1x 更新到 2x 后,所有测试都开始失败。 经过数小时的网络挖掘后,我注意到我有 2 个版本的
chokidar dependencies
它有不同的手表包版本,所以我锁定了一个包
resolutions
在我的包文件中。
是手表包^2.0.0-beta.7
所有测试都开始工作了!
但不幸的是,开发者模式停止支持热重载... 并开始崩溃。
所以我尝试将 chokidar 锁定到版本 "^3.0.2"
,现在一切都很好!
但我开始想知道这个文件中的一切是如何工作的 因为在锁定 chokidar 之后,所有问题都消失了!
那条线到底是什么意思?使用哪种chokidar?两个都?第一的?第二? 甚至在这里
有些依赖。的依赖,有 7 个版本!
【问题讨论】:
【参考方案1】:据我了解(如果我错了,请纠正我),第一行列出了所有依赖项,所以你有例如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/
【讨论】:
以上是关于锁文件解释,每一行到底是啥意思?纱线锁的主要内容,如果未能解决你的问题,请参考以下文章
linux shell: 帮我解释下这个makefile每一行的意思嘛