我是靠谱客的博主 正直汽车,最近开发中收集的这篇文章主要介绍Node.js 入门教程 19 package-lock.json 文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Node.js 入门教程

Node.js官方入门教程

Node.js中文网

本文仅用于学习记录,不存在任何商业用途,如侵删

文章目录

      • Node.js 入门教程
      • 19 package-lock.json 文件
        • 19.1 示例

19 package-lock.json 文件

在这里插入图片描述

在版本 5 中,npm 引入了 package-lock.json 文件。

那是什么?您可能知道 package.json 文件,它更常见并且存在的时间更长。

该文件旨在跟踪被安装的每个软件包的确切版本,以便产品可以以相同的方式被 100% 复制(即使软件包的维护者更新了软件包)。

这解决了 package.json 一直尚未解决的特殊问题。

在 package.json 中,可以使用 semver 表示法设置要升级到的版本(补丁版本或次版本),例如:

  • 如果写入的是 〜0.13.0,则只更新补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
  • 如果写入的是 ^0.13.0,则要更新补丁版本和次版本:即 0.13.10.14.0、依此类推。
  • 如果写入的是 0.13.0,则始终使用确切的版本。

无需将 node_modules 文件夹(该文件夹通常很大)提交到 Git,当尝试使用 npm install 命令在另一台机器上复制项目时,如果指定了 语法并且软件包发布了补丁版本,则该软件包会被安装。 ^ 和次版本也一样。【原来如此】

如果指定确切的版本,例如示例中的 0.13.0,则不会受到此问题的影响。

可能是你,或者是其他人,会在某处尝试通过运行 npm install 初始化项目。

因此,原始的项目和新初始化的项目实际上是不同的。 即使补丁版本或次版本不应该引入重大的更改,但还是可能引入缺陷。

package-lock.json 会固化当前安装的每个软件包的版本,当运行 npm install时,npm 会使用这些确切的版本。

这个概念并不新鲜,其他编程语言的软件包管理器(例如 PHP 中的 Composer)使用类似的系统已有多年。

package-lock.json 文件需要被提交到 Git 仓库,以便被其他人获取(如果项目是公开的或有合作者,或者将 Git 作为部署源)。

当运行 npm update 时,package-lock.json 文件中的依赖的版本会被更新。

19.1 示例

在空文件夹中运行 npm install cowsay 时获得的 package-lock.json 文件的示例结构:

在这里插入图片描述

在这里插入图片描述

安装 cowsay,其依赖于:

  • get-stdin
  • optimist
  • string-width
  • strip-eof

在这里插入图片描述

这些软件包还需要其他软件包,正如从 require 属性可以看到的:

  • ansi-regex
  • is-fullwidth-code-point
  • minimist
  • wordwrap
  • strip-eof

在这里插入图片描述

它们会按字母顺序被添加到文件中,每个都有 version 字段、指向软件包位置的 resolved 字段、以及用于校验软件包的 integrity 字符串。

最后

以上就是正直汽车为你收集整理的Node.js 入门教程 19 package-lock.json 文件的全部内容,希望文章能够帮你解决Node.js 入门教程 19 package-lock.json 文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部