首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >package-lock.json会阻止更新吗?

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

Stack Overflow用户
提问于 2018-07-12 13:42:44
回答 2查看 1.9K关注 0票数 5

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

我读到在5.x+中有一个关于package-lock.json的想法

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

我基本上是想验证node_modules是否按预期工作,并且每次我运行npm install时,我都会得到与最初相同的node_modules,即使有五个深度依赖项决定更新他们的包,我也不想要它。

EN

回答 2

Stack Overflow用户

发布于 2018-07-24 04:42:26

正如您在评论中所说的,答案是肯定的。

对于您的依赖项依赖项,运行npm install将安装在它们各自的package.json中指定的版本(它们没有package.json-lock.json,因为它没有发布,但它们可能有一个shrinkwrap),除非您运行npm update

简而言之,如果你运行npm update,你只会在你不想运行的场景中运行,但是npm install不会给你带来麻烦。

顺便说一句,您可以通过将package.json复制到2环境中轻松地复制该行为,在该环境中,您拥有所需的2个节点版本。

票数 2
EN

Stack Overflow用户

发布于 2018-07-12 13:44:38

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

此文件旨在提交到源代码库中,并用于各种用途:

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

为用户“穿越”到node_modules以前的状态提供了便利,而不必提交目录本身。

通过可读的源代码管理差异来促进树更改的更大可见性。

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51298070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档