npm的package-lock.json文件

https://docs.npmjs.com/cli/v10/configuring-npm/package-lock-json

例如,在工作目录下安装了包,会自动生成package-lock.json文件。
在这里插入图片描述

package-lock.json 是自动生成的,用于任何涉及 npm 修改 node_modules 目录树或 package.json 的操作。它描述了生成的确切目录树,以便后续安装能够生成相同的目录树,而不受中间依赖项更新的影响。

我当前npm的版本是10.5.0:
在这里插入图片描述

执行npm install 进行安装的时候,遵循如下规则:
1)如果package-lock.json指定的版本 package.json指定的版本范围内,那么就安装package-lock.json指定的版本。即使有比package-lock.json指定的版本更新的版本,也不会安装。
2)如果package-lock.json指定的版本 不在 package.json指定的版本范围内,那么就安装package.json指定的版本范围内的最新版本。

下面验证规则1:
将工作目录下面的node_modules目录删掉:
在这里插入图片描述

为了验证,人为修改package.json和package-lock.json文件中的版本。
package.json的内容,其中^3.6.4表示可以安装大于等于3.6.4、但小于4.0.0的最新版本:
在这里插入图片描述

package-lock.json文件的内容:
在这里插入图片描述

3.7.0版本在^3.6.4指定的范围内,所以预期最终会安装3.7.0版本。
执行npm i命令进行安装:
在这里插入图片描述

执行npm list命令,看安装后的版本,是3.7.0,跟预期的一致。
在这里插入图片描述

下面验证规则2:
将工作目录下面的node_modules目录删掉。

人为修改package.json和package-lock.json文件中的版本。
package.json的内容,其中^3.7.0表示可以安装大于等于3.7.0、但小于4.0.0的最新版本(当前最新版本是3.7.1版本):
在这里插入图片描述

package-lock.json文件的内容,其中3.6.4不在^3.7.0指定的范围内:
在这里插入图片描述

所以,预期会安装^3.7.0指定范围内的最新版本,即当前最新的3.7.1版本。

进行安装:
在这里插入图片描述

查看安装后的版本,是3.7.1版本,符合预期:
在这里插入图片描述

此时,package-lock.json文件的内容会更新:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值