package.json 与 package-lock.json

package.json记录项目所需模块及版本信息,package-lock.json详细锁定每个依赖的版本和来源。package-lock确保重复安装时的一致性,防止自动升级并提高恢复速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是package.json文件
package.json记录当前项目中下载了哪些包(npm install xxx 包信息),记录你下载的包信息(地址、版本号等),不包含依赖包信息。

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

二、什么是package-lock.json文件
package-lock.json 就是用以记录当前状态下安装的各个npm package的具体来源和版本号,模块下载地址、及这个模块又依赖了哪些依赖。在首次安装依赖包时会创建package-lock.json文件。

npm5以前没有package-lock.json这个文件,需要保存依赖信息,每次安装时都要加上--save参数;npm5以后版本加入了package-lock.json文件。当安装包的时候,不需要加上--save参数,它会自动保存依赖信息,且会生成或更新package-lock.json这个文件。(如图)

 

 

三、为什么有了package.json,还需要package-lock.json文件呢?
当项目中已有package-lock.json 文件,在安装项目依赖时,将以该文件为主进行解析安装指定版本依赖包,而不是使用 package.json 来解析和安装模块。因为 package 只是指定的版本不够具体,而package-lock 为每个模块及其每个依赖项指定了版本,位置和完整性哈希,所以它每次创建的安装都是相同的。

package-lock.json 文件主要作用有以下两点:

①.当删除node_module目录时,想通过npm install 恢复所有包时,提升下载速度。
②.锁定版本号,防止自动升级新版本。

正因为有了package-lock.json文件锁定版本号,所以当你执行npm install的时候,node不会自动更新package.json文件中的模块,必须用npm install packagename(自动更新小版本号)或者npm install packagename@x.x.x(指定版本号)来进行安装才会更新,package-lock.json文件中的版本号也会随着更新。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值