Angular 5- Package.json-lock

时间:2018-01-19 06:33:54

标签: angular5

  1. 有人可以解释一下为什么这个package.json-lock文件是 用在我们的项目中?
  2. 如何使用?
  3. 如果在npm之后我的项目中安装了任何第三方组件 安装会影响这个文件吗?

1 个答案:

答案 0 :(得分:0)

所以直截了当我希望你知道package.JSON文件的作用以及它的用途。

简短的package.JSON文件为您提供从项目的名称到npm依赖项开始的项目信息。该文件用于向npm提供信息,使其能够识别项目以及处理项目的依赖项。

来到package.json-lock文件

自动生成package-lock.json,用于将任何节点模块包安装到项目中的任何操作,或者npm修改node_modules文件夹,或者更改package.json文件中的内容。

所以例如你使用npm install安装一个第三方模块。 并在package.json文件中添加了模块版本。同样也将在package-lock.json中生成。

package-lock.json的

文件结构通常与package.json文件相同 在依赖项中有更多信息的地方

所以依赖是包名到依赖对象的映射。依赖项对象具有以下属性,具有外观here

提出问题

1)有人能解释一下为什么我们的项目中使用了这个package.json-lock文件?

ans)它在结构树中存储精确的版本化依赖项信息,而不是像使用package.json本身(例如1.0。*)那样使用星号版本控制。这意味着您可以保证其他开发人员或prod版本等的依赖关系。它还有一种锁定树的机制,但如果package.json发生更改或者您安装了任何新模块,通常会重新生成。

2)如何使用?

ans)它锁定完整依赖关系树的版本。这允许您为其他开发人员或版本保证您的依赖关系树,同时仍然允许使用您的标准package.json测试新的依赖版本(直接或间接)。

3)如果在npm安装后我的项目中安装了任何第三方组件,它是否会影响该文件?

ans)自NPM 5.1起,每次调用npm install时都会更新package-lock.json文件。 (更改为github.com/npm/npm/issues/16866,例如github.com/npm/npm/issues/17979)因此,除非您指定确切的版本,否则它不能再用于为所有开发人员设置相同的版本比如你的package.json文件中的1.2.3而不是1.2。*。