【Vue】package-lock.json的作用

package-lock.json有什么作用呢?简单理解就是锁定dependencies的版本号。
一般来说前端的项目都有一个package.json文件管理依赖的版本号,在package.json文件里我们可以看到依赖的版本号前面一半有^和~这些符号。
^:锁定大版本号,比如是^6.2.2,会匹配所有6.x.x的版本,更新的时候会下载最新的版本号
~:锁定前面两个版本号,比如是^6.2.2,会匹配所有6.2.x的版本,更新的时候会下载最新的版本号
*:安装最新的版本号。
不同的下载时间、npm下载源不一样或者不同机器,下载得到的nodejs依赖包有可能不一样。所以这时候package-lock.json的作用就出来了。它就是固定当前的版本,确保你安装的包不会因为在新的机器上或者新的下载源下载依赖包时不一致,这在开发、部署或者多人协作时会减少很多不必要的麻烦。
我们举个例子,当前测试的project的依赖如下

  "devDependencies": {
    "dayjs": "~1.9.4",
    "file-saver": "^1.2.0",
    "lodash": "*"
  },

一般来说新建的项目是没有package-lock.json这个文件,执行npm install时候它会自动生成。
执行npm install后,我们去node-modules目录看下这三个包的版本号。

    "dayjs": "1.9.8",
    "file-saver": "1.3.8",
    "lodash": "4.17.21"

再看下生成的package-lock.json文件

 "dependencies": {
    "dayjs": {
      "version": "1.9.8",
     "dev": true
    },
    "file-saver": {
      "version": "1.3.8",
      "dev": true
    },
    "lodash": {
      "version": "4.17.21",
      "dev": true
    }
  }

node_module依赖包的版本和package-lock.json的版本号是一样的。dayjs匹配到了1.9.x的最新版本,file-saver匹配到了1.x.x的最新版本,lodash匹配到了最新的版本。
当我们需要去更新依赖包的版本时,可以通过执行npm install xxx@x.x.x实现,package-lock.json也会随之更新。
我本地的npm版本是6.10.2,在package.json中直接修改版本号,然后npm install,也可以实现依赖包的版本和package-lock.json更新。网上有说法是5版本后不支持这种改法了。
如果下载依赖用的是yarn install,那用的就是yarn.lock文件。

蜗牛速度般的学习,慢牛般的成长-

更多文章欢迎关注公众号“三横兰”

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值