vue项目package.json与package-lock.json作用及区别

news2024/12/28 20:17:38

package.json文件介绍和使用

运行项目,命令行: npm run dev

“dependencies” 运行依赖,需引入页面使用 “devDependencies” 开发依赖(生产环境使用),只是开发阶段需要

在这里插入图片描述
在这里插入图片描述

我们每次新建一个项目的时候会发现在项目中会有这么俩个相似的文件,并且一个里边东西很多一个里边的东西很简洁,那么他们到底有什么区别与联系。

npm5之前的版本,是不会生成package-lock.json这个文件的。npm5版本及以后,才会生成package-lock.json文件;当使用npm安装包的时候,npm都会生成或者更新package-lock.json文件,npm5版本及以后的版本,在安装包的时候,不需要加 --save(-s) 参数,也会自动在package.json中保存依赖项,当安装包的时候,会自动创建或者更新package-lock.json文件。

package-lock.json文件内保存了 node_modules中所有包的信息,包含着这些包的名称、版本号、下载地址。这样带来好处是,如果重新 npm install 的时候,就无需逐个分析包的依赖项,因此会大大加快安装速度。

package-lock.json文件,lock代表的是“锁定”的意思。用来锁定当前开发使用的版本号,防止npm
install的时候自动更新到了更新版本。因为新版本可能替换掉老的api,导致之前的代码报错。

package.json 文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本,你每次npm
install都是拉取的该大版本下的最新的版本,为了稳定性考虑我们几乎是不敢随意升级依赖包的,这将导致多出来很多工作量,测试/适配等,这个时候package-lock.json文件应运而生,所以当你每次安装一个依赖的时候就锁定在你安装的这个版本。

package.json文件记录你项目中所需要的所有模块。当你执行npm install的时候,node会先从package.json文件中读取所有dependencies信息,然后根据dependencies中的信息与node_modules中的模块进行对比,没有的直接下载,已有的检查更新(最新版本的nodejs不会更新,因为有package-lock.json文件,下面再说)。另外,package.json文件只记录你通过npm install方式安装的模块信息,而这些模块所依赖的其他子模块的信息不会记录。

package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块。当你执行npm install的时候,node从package.json文件读取模块名称,从package-lock.json文件中获取版本号,然后进行下载或者更新。因此,正因为有了package-lock.json文件锁定版本号,所以当你执行npm install的时候,node不会自动更新package.json文件中的模块,必须用npm install packagename(自动更新小版本号)或者npm install packagename@x.x.x(指定版本号)来进行安装才会更新,package-lock.json文件中的版本号也会随着更新。

顺便说一下:当package.json与package-lock.json都不存在,执行"npm install"时,node会重新生成package-lock.json文件,然后把node_modules中的模块信息全部记入package-lock.json文件,但不会生成package.json文件,此时,你可以通过"npm init --yes"来初始化生成package.json文件。

总结:

项目中引入的包版本号之前经常会加^号,每次在执行npm install之后,下载的包都会发生变化,为了系统的稳定性考虑,每次执行完npm install之后会创建或者更新package-lock文件。该文件记录了上一次安装的具体的版本号,相当于是提供了一个参考,在出现版本兼容性问题的时候,就可以参考这个文件来修改版本号即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1143893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言标准输入

文章目录 Go语言标准输入函数使用 Go语言标准输入 函数 Scan // 使用stdin读取内容,读取的内容以空白(换行也属于空白)分隔,赋值给函数参数。返回读取的个数和错误 func Scan(a ...interface{}) (n int, err error)Scanf // 和…

《算法通关村—最大小栈问题解析》

《算法通关村—最大小栈问题解析》 最小栈 描述 leetCode 155: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现最小栈 MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop()…

计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

一物体被放置在传送带上,转轴的直径为100mm。已知线阵相机4K7u(一行共4096个像素单元,像素单元大小7um),镜头35mm,编码器2000脉冲/圈。保证图像不变形的条件下,计算相机到产品之间 摆放距离&…

Docker的架构与自制镜像的发布

一. Docker 是什么 Docker与自动化测试及其测试实践 大家都知道虚拟机吧,windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来和真实操…

[计算机提升] Windows系统各种开机启动方式介绍

1.14 开机启动 在Windows系统中,开机启动是指开启电脑后,自动运行指定的程序或服务的技术。一些程序或服务需要在开机后自动启动,以便及时响应用户操作,比如防安防软件、即时通信工具、文件同步软件等。 同时,一些系统…

5.OsgEarth加载地形

愿你出走半生,归来仍是少年! 在三维场景中除了使用影像体现出地貌情况,还需要通过地形体现出地势起伏,还原一个相对真实的三维虚拟世界。 osgEarth可通过直接加载Dem数据进行场景内的地形构建。 1.数据准备 由于我也没有高程数据&#xff0c…

在Centos7中配置NIS的详细过程

在Centos7中配置NIS的详细过程 原理 NIS(Network Information Service) 在有多台linux服务器的环境中,且一台linux服务器的账号又有很多且可能会相同,所以会出现理员很难管理的现象。NIS的主要功能是对主机账号系统等系统信息提供集中的管理。 当NIS客户…

C# 图解教程 第5版 —— 第10章 语句

文章目录 10.1 什么是语句(*)10.2 表达式语句10.3 控制流语句10.4 if 语句(*)10.5 if ... else 语句(*)10.6 while 循环(*)10.7 do 循环(*)10.8 for 循环10.8…

centos7虚拟机部署苍穹私有云环境记录

物理机建议16G内存以上,不然安装gpass过程中带不动虚拟机 步骤1:迅雷下载centos7.9镜像文件,并创建虚拟机,手动安装 http://ftp.sjtu.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 后面安装gpass时会有校验…

一文1800字解读性能指标与性能分析

性能测试监控关键指标: 1、系统指标:与⽤户场景与需求直接相关的指标 2、服务器资源指标:硬件服务器的资源使⽤情况的指标 3、JAVA应⽤ : JAVA应⽤程序在运⾏时的各项指标 4、数据库:数据库服务器运⾏时需要监控的指标 5、压测机资源指标:测试机在模拟⽤户负载时的资源使⽤…

经典目标检测神经网络 - RCNN、SSD、YOLO

文章目录 1. 目标检测算法分类2. 区域卷积神经网络2.1 R-CNN2.2 Fast R-CNN2.3 Faster R-CNN2.4 Mask R-CNN2.5 速度和精度比较 3. 单发多框检测(SSD)4. YOLO 1. 目标检测算法分类 目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与…

python3+requests+unittest实战详解(一)

1、环境准备 python3 pycharm编辑器 2、框架目录展示 (该套代码只是简单入门,有兴趣的可以不断后期完善) (1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送&#xff1…

如何写好测试用例,看完即会

目的 测试用例这个名词,相信各位从业者已经是熟悉的不能再熟悉了,无论你是从事何种行业,只要是软件测试从业者,测试用例始终贯穿于我们的日常工作中,今天我们就针对设计测试用例的方方面面进行一个详细的介绍。 写好黑…

【华为HCIP | 职业认证考试】821每日一刷

个人名片: 🐼作者简介:一名大三在校生,喜欢编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:🖼️ 零…

STM32 ADC数模转换器

STM32 ADC数模转换器 ADC简介 ADC(Analog-Digital Converter)模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 STM32主要是数字电路,数字电路只有高低电平&#xf…

计算机网络重点概念整理-第四章 网络层【期末复习|考研复习】

第四章 网络层 【期末复习|考研复习】 计算机网络系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 第四章 网络层 【期末复习|考研复习…

云计算与ai人工智能对高防cdn的发展

高防CDN(Content Delivery Network)作为网络安全领域的一项关键技术,致力于保护在线内容免受各种网络攻击,包括分布式拒绝服务攻击(DDoS)等。然而,随着人工智能(AI)和大数…

AOSP 编译真机镜像与AVD镜像

硬件设备当然是配置越高越好,虚拟机编译至少需要16G内存300G硬盘空间 配置环境 Ubuntu 最好,安装方式网上一大堆,自行搜索,本文是基于 Ubuntu 22.04.3 LTS 更新&&配置 sudo apt-get update sudo apt-get upgrade sudo ap…

云服务器搭建Zookeeper集群

文章目录 1.集群配置2.zookeeper的群起脚本3. Zookeeper节点的创建和删除相关4. Zookeeper的选举机制 1.集群配置 Zookeeper的集群个数最好保证是奇数个数,因为Zookeeper的选举过程有一个“半数机制”。 5台服务器,可以设置Zookeeper的集群为3或者5&…

世界前沿技术发展报告2023《世界航空技术发展报告》(二)军用飞机技术

(二)军用飞机技术 1.作战飞机1.1 美俄对第五代战斗机进行升级改进1.2 美欧第六代战斗机技术取得新进展1.3 美国B-21隐身轰炸机正式亮相 2.支援飞机2.1 美国空军拟研制翼身融合布局运输/加油机2.2 美欧厂商积极参加北约未来预警机技术研究项目2.3 美国空军…