内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
npm5的一项新功能为通过创建package-lock.json
文件进行确定性安装。
这个文件应该保存在源代码管理中吗?
我假设它与yarn.lock
和composer.lock
类似,都应该保存在源代码管理中。
package-lock.json
用于签入源代码管理。如果你使用npm5(npm install -g npm@latest
),你可以在命令行中看到以下内容:created a lockfile as package-lock.json. You should commit this file.
由npm help package-lock.json
得来:
对于npm修改
node_modules
树或package.json
的任何操作,将自动生成package-lock.json
。 它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖性更新如何。这个文件旨在被提交到源代码库,并提供各种用途:
node_modules
的先前状态,而无需提交目录本身。关于package-lock.json
的一个关键细节是它不能被发布,并且如果在顶层包之外的任何地方被发现,它将被忽略。它与npm-shrinkwrap.json(5)共享格式,它基本上是相同的文件,但允许发布。除非部署CLI工具或以其他方式使用发布过程来生产生产包,否则不建议这样做。
如果package-lock.json
和npm-shrinkwrap.json
都存在于一个包的根目录下,package-lock.json
将被完全忽略。