package-lock.json 有啥用?
Posted
技术标签:
【中文标题】package-lock.json 有啥用?【英文标题】:what is the use of package-lock.json?package-lock.json 有什么用? 【发布时间】:2018-03-21 12:11:34 【问题描述】:谁能告诉我 package-lock.json 文件的确切用途?
虽然很多人提到它是用来查看版本依赖树的。
寻找简单易懂的解释。
提前致谢。
【问题讨论】:
为了避免在你和队友做 npm install 时引入不同的库依赖项 最近在 package-lock.json 中遇到很多合并冲突 .. 我该如何避免呢? 【参考方案1】:npm install
使用此文件来确保它要安装的软件包与此文件中的规定相同。它使npm install
操作在机器之间保持一致。因此,您将不太可能对node_modules
文件夹进行核攻击。
在一致的包视图之上,如果您的存储库包含已知的安全漏洞,GitHub 还会 use package-lock.json to scan。
您可以使用lock-walker 直观地遍历package-lock.json
中的依赖关系树,这在检查安全漏洞时特别有用。
【讨论】:
【参考方案2】:我认为npm documention 很有解释性。 其主要目的是提供
依赖关系树的单一表示,例如队友、部署和 保证持续集成安装完全相同的依赖项。
因此,例如在不同的系统和/或不同的人上,将使用相同的依赖项(和相同的版本)。 如需更好的解释,请参阅this
希望这会有所帮助。
【讨论】:
谢谢@gtosto。我确实在 npm doc 中读过同样的内容。我看到“安装完全相同的依赖项”,package.json 现在不是以同样的方式工作吗? 在 package.json 中你可以指定通配符,例如,通常你不控制传递依赖的版本。相反,package-lock.json 或多或少类似于特定依赖解析“运行”的快照或实例。 为了更好的解释阅读this abaout package locks in npm以上是关于package-lock.json 有啥用?的主要内容,如果未能解决你的问题,请参考以下文章
npm-shrinkwrap.json 和 package-lock.json 有啥区别?
NPM5,package-lock.json 和 package.json 有啥区别?
package-lock.json 和 package.json 有啥区别,啥时候生成 package.json?
在 package-lock.json 中解析 URL 有啥意义?
如果 package-lock.json 锁定它,那么在 package.json 中声明“兼容版本”(^version)有啥意义?