package-lock.json是否需要在git中进行版本控制?

Hen*_*Leu 1 git package gitignore node.js npm

npm 5&nodejs 8引入了一个名为package-lock.json的文件,我想知道它是否需要版本化或在git中被忽略

LuF*_*FFy 9

简答:是的一定是.

答案很长:

如每个npmjs Documentaion:

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

此文件旨在提交到源存储库,并用于各种目的:

  • 描述依赖关系树的单个表示,以确保队友,部署和持续集成能够安装完全相同的依赖关系.

  • 为用户提供time-travel到以前状态的工具,npm_modules而无需提交目录本身.

  • 通过可读的源代码控制差异来促进树更改的更大可见性.

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