NPM5今天发布,其中一个新特性包括确定性安装,创建了包锁.json文件
这个文件应该保存在源代码管理中吗
我假设它类似于warn.lock和composer.lock,它们都应该保存在源代码控制中
是的,package lock.json打算签入源代码管理。如果您使用的是npm 5+,您可能会在命令行上看到此通知:创建了一个锁文件package-lock.json。您应该提交此文件。根据npm help package lock.json:
package lock.json会自动为任何需要npm的操作生成
修改node\u modules树或package.json。它描述了
生成的精确树,以便后续安装能够
生成相同的树,而不考虑中间依赖项更新此文件旨在提交到源存储库中,并用于
各种目的:
描述依赖关系树的单一表示形式,以确保团队成员、部署和持续集成能够安装完全相同的依赖关系
为用户提供一个设施,以便;“时间旅行”;切换到
节点单元模块的先前状态,而无需提交目录本身通过可读的源代码管理差异,提高树更改的可见性
并通过允许npm跳过以前安装的包的重复元数据解析来优化安装过程
关于
package lock.json的一个关键细节是它无法发布,并且
如果在顶级软件包以外的任何位置找到,将忽略。它分享
包含npm-shrinkwrap.json的格式,本质上是相同的文件,但是
允许发布。除非部署CLI工具或
否则,使用发布过程生成生产包如果包的根中同时存在
package lock.json和npm shrinkwrap.json
一个包,package lock.json将被完全忽略