首页 > 解决方案 > package-lock.json 不会使 package.json 中 ^ 的所有使用无效吗?

问题描述

我正在尝试协调^package.json 中字符的用途,以及它如何受 package-lock.json 的影响。例如,我运行npm install johnny-dependency. 现在我在 package.json 中列出了一个依赖项:

"johnny-dependency": "^1.2.0"

在 repo 实例化和第一个npm install,将生成 package-lock.json ,指定此包使用 1.2.0,它还将指定johnny-dependency应使用的依赖项的哪些版本。

如果 package-lock.json 本质上锁定了版本,那么 package.json 中的^or ~semvr 说明符的目的是什么?在这个问题的答案中,为什么“npm install”会重写 package-lock.json?,据说package-lock.json不再锁定根级依赖。如果是这样,为什么将 package-lock.json 提交到源代码控制仍然是最佳实践?

我以前从来没有考虑过这个问题,我肯定错过了一些明显的东西吗?

标签: npmpackage.jsonsemantic-versioningpackage-lock.json

解决方案


推荐阅读