NPM package-lock.json

🌙
手机阅读
本文目录结构

清单的体现

说明

package-lock.json 会为 npm 修改 node_modules 树或的任何操作自动生成 package.json。

它描述了生成的确切树,因此无论中间依赖项更新如何,后续安装都可以生成相同的树。

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

  • 描述依赖关系树的单个表示,这样可以确保队友,部署和持续集成安装完全相同的依赖关系。

  • 为用户提供一种便利,使其可以“时间旅行”到以前的状态,node_modules 而不必提交目录本身。

  • 为了通过可读的源代码控制差异更好地了解树的变化。

  • 并允许 npm 跳过先前安装的软件包的重复元数据解析,从而优化安装过程。

关于 package-lock.json 它的一个关键细节是它无法发布,并且如果在顶级软件包以外的任何地方找到它,它将被忽略。

它与 npm-shrinkwrap.json 共享一种格式,该格式本质上是相同的文件,但是可以发布。除非部署 CLI 工具或使用发布过程来生产生产软件包,否则不建议这样做。

如果软件包的根目录中同时存在 package-lock.json 和 npm-shrinkwrap.json,package-lock.json 将被完全忽略。

系统识别的属性

name

这是程序包锁定的程序包名称。这必须与中的内容匹配 package.json。

version

这是程序包锁定的程序包版本。这必须与中的内容匹配 package.json。

lockfileVersion

整数版本,1 从此文档的版本号开始,在生成 this 时使用了其语义 package-lock.json

packageIntegrity

这是从中创建的子资源完整性值 package.json。请勿进行预处理 package.json。子资源完整性字符串可以由类似的模块生成 ssri。

表示安装是在 NODE_PRESERVE_SYMLINKS 启用环境变量的情况下完成的 。安装程序应坚持该属性的值与该环境变量匹配。

dependencies

程序包名称到依赖项对象的映射。依赖对象具有以下属性:

version

这是一个说明符,可唯一标识此程序包,并应可用于获取它的新副本。

  • 捆绑的依赖关系:不管来源如何,这都是一个纯粹用于参考目的的版本号。
  • 注册表源:这是一个版本号。(例如,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)

integrity

这是此资源的标准子资源完整性。

对于捆绑的依赖项,无论来源如何,均不包括在内。 对于注册表源,这是 integrity 注册表提供的,或者如果未提供 SHA1 shasum。 对于 git 源,这是我们从中克隆的特定提交哈希。 对于远程 tarball 源,这是基于文件 SHA512 的完整性。 对于本地 tarball 源:这是基于文件 SHA512 的完整性字段。

resolved

对于捆绑的依赖项,无论来源如何,均不包括在内。 对于注册表源,这是 tarball 相对于注册表 URL 的路径。如果 tarball URL 与注册表 URL 不在同一服务器上,则这是完整的 URL。

bundled

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

dev

如果为 true,则此依赖项仅是顶层模块的开发依赖项,或者是一个传递性依赖项。对于既是顶层的开发依赖关系又是顶层的非开发依赖关系的传递依赖关系的依赖关系,这是错误的。

optional

如果为 true,则此依赖项仅是顶层模块的可选依赖项,或者是一个传递性依赖项。对于既是顶层的可选依赖关系又是顶层的非可选依赖关系的传递性依赖关系的依赖关系,则为 false。

即使所有可选依赖项都可以在当前平台上卸载,也应包括在内。

requires

这是模块名称到版本的映射。这是该模块所需的所有内容的列表,无论它将安装在哪里。版本应通过正常的匹配规则匹配我们 dependencies 或更高级别的依赖关系 。

dependencies

此依赖关系的依赖关系,与顶层完全相同。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了