【问题标题】:Need for both package.json, package-lock.json files in an angular applicationAngular 应用程序中需要 package.json、package-lock.json 文件
【发布时间】:2019-07-18 17:08:21
【问题描述】:

我是新来的。当我使用 angular-cli 安装示例 Angular 应用程序时,我看到了 package.json 和 package-lock.json 文件的定义。在这些文件中,package-lock.json 文件定义了确切的依赖关系,而 package.json 有其他主要事实,如作者、描述、关键字等。我发现这个相关的 link 很有用。

我的疑问是为什么 package-lock.json 中详述的数据也包含在 package.json 文件中,这样就不需要两个单独的 package json 文件。两个具有相似数据的文件可能会让人感到困惑,尤其是对于初学者来说,对吧?

【问题讨论】:

    标签: node.js angular angular-cli package.json


    【解决方案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),验证模块完整性的哈希,列表它需要的包,以及依赖项列表。

    因为包锁为每个模块及其每个依赖项指定了版本、位置和完整性哈希,所以它创建的安装每次都是相同的。不管你在什么设备上,或者你以后什么时候安装,它应该每次都给你相同的结果,这非常有用。

    【讨论】:

      【解决方案2】:
      对于 npm 修改 node_modules 树或 package.json 的任何操作,

      Package-lock.json 会自动生成。它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖项更新如何。

      欲了解更多信息,请参阅下面的链接。

      "package-lock.json" role

      【讨论】:

        【解决方案3】:

        https://docs.npmjs.com/cli/v7/configuring-npm/package-json

        package.json 是一个 JSON 文件,位于您的根目录中 项目。您的 package.json 包含有关 项目。它包含有关项目的人类可读元数据(例如 项目名称和描述)以及功能元数据,如 包版本号和所需的依赖项列表 申请。

        https://docs.npmjs.com/cli/v7/configuring-npm/package-lock-json

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

        此文件旨在提交到源存储库中,并且 有多种用途:

        • 描述依赖树的单一表示,以保证团队成员、部署和持续集成
        • 安装完全相同的依赖项。 为用户提供“时间旅行”到 node_modules 先前状态的工具,而无需提交目录 本身。
        • 通过可读的源代码控制差异提高对树更改的可见性。
        • 通过允许 npm 跳过以前安装的包的重复元数据解析来优化安装过程。

        从 npm v7 开始,锁定文件包含足够的信息来获得完整的 包树的图片,减少读取 package.json 的需要 文件,并允许显着提高性能。

        【讨论】:

          猜你喜欢
          • 2017-12-16
          • 2020-09-24
          • 2018-12-14
          • 2018-10-06
          • 2019-09-08
          • 2019-09-05
          • 1970-01-01
          • 2019-03-26
          • 2019-03-10
          相关资源
          最近更新 更多