package-lock.json会阻止更新吗?

Par*_*roX 5 node.js package.json

我的应用程序是节点v4,我在v4上写回来并且从未需要更新它(如果它没有破坏...).也就是说,直到其中一个依赖项在次要版本更新中删除了v4支持.

我读到package-lock.json5.x + 中有这个想法

package-lock.jso当我必须从源重新安装时,n概念是否会阻止次要版本破坏我的应用程序的情况?

我基本上想验证一个node_modules是按预期工作,每次运行npm install我得到的都是node_modules我原来做的,即使依赖五深决定更新他们的包我不想要它.

ano*_*ous 1

对于 npm 修改 node_modules 树或 package.json 的任何操作,都会自动生成 package-lock.json。它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖项更新如何。

该文件旨在提交到源存储库中,并用于多种目的:

描述依赖关系树的单一表示,以便保证团队成员、部署和持续集成安装完全相同的依赖关系。

为用户提供一种工具,可以“时间旅行”到 node_modules 的先前状态,而无需提交目录本身。

通过可读的源代码控制差异来提高树更改的可见性。

并通过允许 npm 跳过先前安装的软件包的重复元数据解析来优化安装过程。

package-lock.json 的一个关键细节是它无法发布,如果在顶级包以外的任何地方找到它,它将被忽略。它与 npm-shrinkwrap.json(5) 共享格式,本质上是相同的文件,但允许发布。不建议这样做,除非部署 CLI 工具或以其他方式使用发布过程来生成生产包。

如果 package-lock.json 和 npm-shrinkwrap.json 都存在于包的根目录中,则 package-lock.json 将被完全忽略。