dependencies

中英双语

支持使用 lockfileVersion: 1 的 npm 版本的旧数据。这是包名称到依赖对象的映射。因为对象结构是严格分层的,所以在某些情况下,符号链接依赖关系很难表示。

如果存在 packages 部分,npm v7 会完全忽略此部分,但会保持更新以支持在 npm v6 和 npm v7 之间切换。

依赖对象具有以下字段:

  • 版本:根据包的性质而变化的说明符,可用于获取它的新副本。

    • 捆绑的依赖关系:无论来源如何,这是一个纯粹用于提供信息的版本号。
    • 注册表来源:这是一个版本号。(例如,1.2.3
    • git 来源:这是一个已解决的 git 说明符。(例如,git+https://example.com/foo/bar#115311855adb0789a0466714ed48a1499ffea97e
    • http tarball 来源:这是 tarball 的 URL。(例如,https://example.com/example-1.3.0.tgz
    • 本地 tarball 源:这是 tarball 的文件 URL。(例如 file:///opt/storage/example-1.3.0.tgz
    • 本地链接源:这是链接的文件 URL。(例如 file:libs/our-module
  • 完整性:在此位置解压缩的工件的 sha512sha1 标准子资源完整性 字符串。对于 git 依赖项,这是提交 sha。

  • 已解决:对于注册表源,这是 tarball 相对于注册表 URL 的路径。如果 tarball URL 与注册表 URL 不在同一台服务器上,那么这是一个完整的 URL。registry.npmjs.org 是一个神奇的值,意思是 "the currently configured registry"。

  • bundled:如果为 true,则这是捆绑的依赖项,将由父模块安装。安装时,此模块将在提取阶段从父模块中提取,而不是作为单独的依赖项安装。

  • dev:如果为 true,则此依赖项要么是仅顶层模块的开发依赖项,要么是一个传递依赖项。这对于既是顶层的开发依赖又是顶层非开发依赖的传递依赖的依赖是错误的。

  • 可选:如果为真,则此依赖项要么是仅顶级模块的可选依赖项,要么是一个传递依赖项。对于既是顶层的可选依赖项又是顶层非可选依赖项的传递依赖项的依赖项,这是错误的。

  • requires:这是模块名称到版本的映射。这是这个模块需要的所有东西的列表,不管它安装在哪里。版本应该通过正常的匹配规则匹配我们 dependencies 或高于我们级别的依赖项。

  • dependencies:此依赖项的依赖项,与顶层完全一样。