package.json和package-lock.json的关系

今天学习到了一个小知识,就是终于明白了package.json和package-lock.json的关系

先说前面 ^和~的区别

^ 开头意思是向后更新,如果当前使用版本是2.x.x,则在之后使用npm i或者yarn下载的时候会下载次要版本最新的

例如:当前使用2.3.6,但是最新的时候2.4.2,则会下载2.4.2版本

~ 开头的意思是下载小版本最新的,当次要版本有新版本时不会下载

例如:当前使用2.3.6,但是最新的时候2.4.2,则会下载2.3.x的最新版本,不会下载2.4.2

package.json和package-lock.json的关系

下面以qiankun为例

初始化项目时候

package.json文件
在这里插入图片描述
package-lock.json文件
在这里插入图片描述

第一种情况:有package-lock.json文件的时候:

当我们初始化项目时候下载的是2.3.6版本的,然后当其他人启动项目下载依赖的时候使用
npm install 之后,node_modules包中的qiankun版本和package-lock.json中锁定的版本一致,如果锁定版本是2.3.6,则下载的是2.3.6,如果是更新后的则是更新后的版本
在这里插入图片描述

第二种情况:没有package-lock.json文件的时候:

当没有package-lock.json文件的时候可以看到qiankun版本更新到了最新版本,次要版本也发生了变化,虽然package中的没有变化,但是lock中的已经是最新版本
在这里插入图片描述

接下来我们再使用npm i qiankun 安装试试 这里是直接下载了最新版本,都会改变


可以看到这里的两个版本都改变了

当我们手动修改package.json中的qiankun版本为2.3.6的时候再使用npm i 下载试试
在这里插入图片描述
可以看到手动修改是无效的,下载的包版本还是之前最新的

总结:不能随便删除package-lock.json文件,防止版本更新引起不必要的bug

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值