Vue package-lock.json的作用及说明

 更新时间:2023年11月01日 08:40:38   作者:三横兰  
这篇文章主要介绍了Vue package-lock.json的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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文件。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue金融数字格式化(并保留小数)数字滚动效果实现

    Vue金融数字格式化(并保留小数)数字滚动效果实现

    这篇文章主要介绍了Vue金融数字格式化(并保留小数) 数字滚动效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Vue组件选项props实例详解

    Vue组件选项props实例详解

    父组件通过 props 向下传递数据给子组件,子组件通过 events 给父组件发送消息。本文将详细介绍Vue组件选项props,需要的朋友可以参考下
    2017-08-08
  • Vue3中的onMounted详解与使用方法详解

    Vue3中的onMounted详解与使用方法详解

    这篇文章主要介绍了Vue3中的onMounted生命周期钩子,它在组件挂载到DOM后执行代码,onMounted只调用一次,适合进行异步操作、DOM操作和事件监听,在使用时需要注意组件销毁和响应式数据的管理,需要的朋友可以参考下
    2024-11-11
  • 基于element-ui中el-select下拉框选项过多的优化方案

    基于element-ui中el-select下拉框选项过多的优化方案

    这篇文章主要介绍了基于element-ui中el-select下拉框选项过多的优化方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • vue柱状进度条图像的完美实现方案

    vue柱状进度条图像的完美实现方案

    本文是对bar进度条实现的2种方案进行分享,第一种是很简单,纯css的实现,第二种是echart的实现。对vue柱状进度条图像的实现方案,感兴趣的朋友跟随小编一起看看吧
    2019-08-08
  • vue项目input标签checkbox,change和click绑定事件的区别说明

    vue项目input标签checkbox,change和click绑定事件的区别说明

    这篇文章主要介绍了vue项目input标签checkbox,change和click绑定事件的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • element-ui自定义message-box自定义样式不生效的解决

    element-ui自定义message-box自定义样式不生效的解决

    这篇文章主要介绍了element-ui自定义message-box自定义样式不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue插件之滑动验证码

    Vue插件之滑动验证码

    这篇文章主要为大家详细绍介绍了Vue插件之滑动验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • vue-quill-editor富文本编辑器简单使用方法

    vue-quill-editor富文本编辑器简单使用方法

    这篇文章主要为大家详细介绍了vue-quill-editor富文本编辑器简单使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Vue Element前端应用开发之功能点管理及权限控制

    Vue Element前端应用开发之功能点管理及权限控制

    在一个业务管理系统中,如果我们需要实现权限控制功能,我们需要定义好对应的权限功能点,然后在界面中对界面元素的功能点进行绑定,这样就可以在后台动态分配权限进行动态控制了,权限功能点是针对角色进行控制的,也就是简称RBAC(Role Based Access Control)。
    2021-05-05

最新评论