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


    Node.js 入门教程

    Node.js官方入门教程

    Node.js中文网

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

    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 字符串。

  • 相关阅读:
    14、用户web层服务(二)
    水位监测识别摄像机
    【苍穹外卖】HttpClient-快速理解&入门
    Docker
    vue中使用video.js,且可以截图、录制和下载视频
    探索基于VSCode的远程开发插件,进行远程指令和本地指令的运行
    配置HBase和zookeeper
    图像识别-人脸识别与疲劳检测 - python opencv 计算机竞赛
    One-YOLOv5 v1.2.0发布:支持分类、检测、实例分割
    Python入门 函数 基础入门篇
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/128073411