0

npm- shrinkwrap.json :锁定 node_modules 树以及依赖项和嵌套依赖项,以防止包代码在其他机器上中断。

package-lock.json:锁定 node_modules 树以及依赖项和嵌套依赖项,以防止包代码在其他机器上中断。

那么,如果 npm 已经有npm-shrinkwrap.json用于锁定目的,为什么还要创建package-lock.json呢?

为什么他们创建新的package-lock.json文件来解决 npm 版本兼容性问题,因为开发人员已经在使用npm-shrinkwrap.json

任何简单,简单且解释清楚的示例答案?

4

2 回答 2

0

默认情况下,npm 会在您的源目录中发布大多数文件,并且人们多年来一直在发布收缩包装。我们不想破坏兼容性。默认情况下,使用 --save 和 shrinkwrap,它很可能会意外进入并通过注册表传播,并且基本上使我们能够更新 deps 和重复数据删除... null。

所以我们选择了一个新名字。我们突然选择了一个新名字。新的锁文件基本上共享所有相同的代码,完全相同的格式

这个想法绝对是让 package-lock.json 成为shrinkwrap 技术中最新和最伟大的,而 npm-shrinkwrap.json 是为那些非常关心他们的库有一个确切的 node_modules 的人保留的——npm-shrinkwrap 有一些package-lock 现在没有的特殊依赖行为设置

于 2018-09-16T15:57:38.770 回答
0

他们做同样的事情。但是,差异很小

  • package-lock.json在发布包时会被 npm 忽略,而npm- shrinkwrap.json不会。通常不建议使用 npm-shrinkwrap.json 发布模块
  • 当两者都在根目录中时,使用npm-shrinkwrap.json
于 2018-09-16T16:24:22.687 回答