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

生成方式

  1. package.json 是通过命令 npm init 生成的
  2. package-lock.json 是下载任何的依赖包(npm install XXX)都会生成

历史

之前npm包管理工具是没使用package-lock.json,是从 node@5 之后才开始存在的。那么,为什么要增加pack-lock.json呢?

原因

npm包管理工具都是通过 package.json 中对各个依赖包的描述去下载对应的依赖包的。但package.json 只能规定大版本号。这样就会导致每个时期下载的依赖包都是不一样的,很容易出现兼容性等各种问题。例如:

"dependencies": {
    "element-plus": "^1.1.0-beta.5",
    "vue": "^3.2.6"
  }

里面的“^”表示向后兼容,可以下载该大版本下最新的依赖包。所以有可能下一次下载到的版本号是8.1.0
所以package-lock.json 就是为了解决这个问题,规定了具体每个依赖包的版本号和对应的下载路径。保证我们下次在重新使用“npm install”下载时,能跟上次一模一样。下面是package-lock.json中的部分源码:

"vue": {
      "version": "3.2.6",   
      "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.6.tgz",   //下载路径
      "integrity": "sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ==",   
      "requires": {
        "@vue/compiler-dom": "3.2.6",
        "@vue/runtime-dom": "3.2.6",
        "@vue/shared": "3.2.6"
      }
    }
posted @   拉布拉多~  阅读(891)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示

目录导航