【发布时间】:2018-11-20 23:03:41
【问题描述】:
让我们考虑 npm 5.3.0+。
假设我刚刚在空目录中创建了package.json 并运行npm i。然后我在package.json 中编辑了包版本。此时package.json与package-lock.json不一致。
问题:如果我再次运行npm i 会发生什么?哪个文件将是真相的来源?在 npm 文档中,我发现只有一个模糊的陈述“每当你运行 npm install 时,npm 都会生成或更新你的包锁”。
关于纱线的同样问题。
【问题讨论】:
-
嗯,这句话说明了一切; npm 将生成或更新锁定文件。它将根据 package.json 文件的内容执行此操作,因为它会将要更新/生成的包列表拉到锁定文件中。
-
@MikeMcCaughan 相同的文档说“如果包有包锁或收缩包装文件,依赖项的安装将由它驱动”,这让我想知道。另外:github.com/npm/npm/issues/16866
-
这些可能是添加到您的问题中的好东西,这样其他人就不必重复您显然已经完成的相同研究......您可能对npm - How to actually use package-lock.json for installing based on locked versions?的答案感兴趣和"package-lock.json" role
标签: javascript node.js npm yarnpkg