首页 > 其他分享 >浅析package.json 和 package-lock.json的区别

浅析package.json 和 package-lock.json的区别

时间:2022-10-08 00:11:25浏览次数:53  
标签:npm package lock json 版本 18.2 浅析

一 package.json 中的版本符号

{
  "react":"^18.2.0",
  "react-dom":"~18.2.0"
  "react-refresh": "0.11.0",
}

插入符号 ^18.2.0 :匹配 18.X.X 的最新版本。
波浪符号 ~18.2.0 :匹配 18.2.X 的最新版本。
固定版本 0.11.0 : 匹配 0.11.0, 不会更新版本。

二 package-lock.json 的由来

一般一种的东西的由来都是为了解决某个问题,pakage-lock.json的由来 为了解决 package.json 的弊端
在npm@5以前都没有package-lock.json, 出现的问题

  • package.json 中版本不统一,更新困难。比如package.json中的某个包 为插入符号或者波浪符号,当包存在更新时,执行npm install 都会去安装最新的包,可能导致兼容性问题以及项目不同成员间开发依赖不稳定性。不利于开发的统一性。
  • 我们依据package.json去安装包的时候,由于安装的包可能还依赖其他包,又会去安装包的package.json 中去查询和下载其依赖包,导致安装包速度拉跨

三 package-lock.json 解决的问题

  • package-lock.json 实现一个版本锁定的功能,当我们执行npm install 时候,会先判断package-lock.json 的版本和package.json 的版本是否兼容,如果兼容则按照package-lock.json 来安装,如果不兼容则按照package.json 来安装,并且安装完将package-lock.json更新。
  • package-lock.json 扁平化包含了项目中所有依赖,能提升下载速度

执行 npm install 后发生了什么?

如图,引用自掘金

标签:npm,package,lock,json,版本,18.2,浅析
From: https://www.cnblogs.com/honkerzh/p/16767566.html

相关文章

  • useEffect 和 useLayoutEffect浅析
    执行时期的区别useEffect回调函数的执行时期useEffect为异步执行,执行时期为触发状态更新(如:setState,forceUpdate)React渲染函数执行(render)将更新渲染到页面上执行use......
  • 前端内存泄露浅析
    手上负责的vue项目最近出现一个这样的问题,用户用着用着就出现:”喔唷,崩溃啦!“的提示。做了以下性能优化尝试:主动销毁对象及其子对象主动取消监听listener本地搜索减少组件DOM......
  • 浅析前端上传
    图片,音频,视频等等这几种常见的资源类型,如果需要从前端上传到服务端,有几种方式呢?不妨回顾一下经历过的项目想一想。项目上也用到很多上传文件的地方,七牛云,阿里云OSS,讯飞weba......
  • 如何理解package.json中的proxy字段?
    入职新公司以来,第一个月接手vue项目,第二个月接手angularjs项目,第三个月加入react重构项目。心生感叹:业务驱动式学习是一种高效率的学习方式,保持好奇心,在业务中快速成长!新项......
  • 深入理解JSON.stringify()
    就我目前4年(实习了1年,965了1年,996了2年,算3年感觉少了,说是4年老司机也不为过吧。)的工作经验来看,JSON.stringify一般有以下用途:深拷贝:深拷贝引用类型的数据序列化:服务端存储......
  • tsconfig.json的esModuleInterop使用场景是怎样的?
    问题场景npm包改造前,仅支持esmnpm包改造后,既支持esm,又支持cjs为什么改造后,还是会报错?如何理解ts编译配置esModuleInterop?总结问题场景遇到一个很有趣的场景,cjs中需要引入原......
  • python安装presto包不能找到路径 PackagesNotFoundError: The following packages ar
    在使用ACCEL_sifting.py文件选取脉冲星候选体文件时,缺少必要的包,安装出错,记录安装过程。condainstallpresto报错如下:PackagesNotFoundError:Thefollowingpackages......
  • Microsoft 365 开发篇:如何使用JSON Format来定制New Item的页面布局
    Blog链接:​​​https://blog.51cto.com/13969817​​我们使用SharePointOnline作为企业数据存储和协作办公管理平台时,往往根据用户的实际需求基于SharePointOnline做了很......
  • httpclient实现HttpGet请求传body的json参数的!
    原文来自:https://admins.blog.csdn.net/article/details/109809386前言最近调用公司项目一个接口时,发现该接口是一个Get请求,入参在Body中(json格式)。场景如下:A服务需发送h......
  • HttpClient发送Post请求传递json、普通参数
    importcom.alibaba.fastjson.JSONObject;importorg.apache.http.HttpEntity;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncod......