我是新手。当我使用angular-cli安装了示例angular应用程序时,我看到定义了package.json和package-lock.json文件。在这些文件中,package-lock.json文件定义了确切的依赖关系,而package.json具有其他主要事实,例如作者,描述,关键字等。我发现与此相关的link很有用。
我的疑问是,为什么package-lock.json中详述的数据也包含在package.json文件中,以便不需要两个单独的package json文件。尤其是对于初学者来说,两个具有相似数据扩展名的文件可能会造成混淆,对吧?
答案 0 :(得分:1)
其他阅读内容:
Everything You Wanted To Know About package-lock.json But Were Too Afraid To Ask
https://github.com/npm/npm/pull/17508
Package-lock是package.json中列出的每个依赖项的大列表,应安装的特定版本,模块(URI)的位置,验证模块完整性的哈希,所需的软件包以及相关性列表。
因为包锁为每个模块及其每个依赖项指定了版本,位置和完整性哈希,所以每次创建的安装都相同。不管您使用什么设备,或者以后安装什么设备,它每次都会为您提供相同的结果,这非常有用。
答案 1 :(得分:0)
Package-lock.json是自动生成的,适用于npm修改node_modules树或package.json的任何操作。它描述了生成的确切树,因此无论中间依赖项更新如何,后续安装都可以生成相同的树。
有关更多信息,请参见下面的链接。