npm和yarn:package.json优先于lockfile吗?

时间:2018-06-11 16:17:59

标签: javascript node.js npm yarnpkg

让我们考虑下午Graph()

想象一下,我刚在空目录中创建了5.3.0+并运行package.json。然后我在npm i编辑了包版本。此时,package.jsonpackage.json不一致。

问题:如果再次运行package-lock.json会怎样?哪个文件是真相的来源?在npm docs中,我发现只有一个模糊的声明“每当你运行npm install时,npm会生成或更新你的包锁”。

纱线的问题。

1 个答案:

答案 0 :(得分:0)

使用yarn时遇到类似的问题。这里有一些想法可能对您有帮助,

如果存在yarn.lock并且足以满足package.json中列出的所有依赖关系,则会安装yarn.lock中记录的确切版本,并且yarn.lock将保持不变。 Yarn不会检查较新的版本。

如果不存在yarn.lock,或者不足以满足package.json中列出的所有依赖项(例如,如果您手动将依赖项添加到package.json),则Yarn会寻找满足以下条件的最新版本: package.json中的约束。结果被写入yarn.lock。

{{3}}

哪个文件是事实的来源?

这取决于yarn.lock中的第三方软件包的版本是否满足软件包 package.json中版本的限制。如果是的话,yarn.lock文件就是“真理的源头”;否则,应该是package.json。