前端面试:npm install 生成的package-lock.json是什么文件?有什么用?

package.json用于描述项目及依赖模块信息,管理包的版本。package-lock.json在npm5.x后引入,确保多人协作时依赖版本一致性,它详细记录了依赖树,防止因版本差异导致的不同运行结果。推荐使用npmci安装依赖以保持一致。

前言

模块化开发在前端越来越流行,使用 node 和 npm 可以很方便的下载管理项目所需的依赖模块。**package.json 用来描述项目及项目所依赖的模块信息。**

那 package-lock.json 和 package.json 有啥关系和联系呢?

package.json

管理包

大家都知道,**package.json 用来描述项目及项目所依赖的模块信息。** ,就是帮我们管理项目中的依赖包的,让我们远离了依赖地狱。

通过 npm 管理,使用一些简单的命令,自动生成package.json, 安装包依赖关系都由package.json来管理,我们几乎不必考虑它们。

语义版本控制

首先我们先来了解下依赖包的版本号的定义

版本号由三部分组成:major.minor.patch,主版本号.次版本号.修补版本号。

例如:1.2.3,主要版本1,次要版本2,补丁3。

  • 补丁中的更改表示不会破坏任何内容的错误修复。
  • 次要版本的更改表示不会破坏任何内容的新功能。
  • 主要版本的更改代表了一个破坏兼容性的大变化。如果用户不适应主要版本更改,则内容将无法正常工作。

安装依赖包的版本如何指定

相信大家都会经历过,我们安装一些依赖包的时候,版本号前面都会带 ^ 或者 ~ 的符号,这两个符号代表什么意思呢?

~ 会匹配最近的小版本依赖包,比如 ~1.2.3 会匹配所有 1.2.x 版本,但是不包括 1.3.0

^ 会匹配最新的大版本依赖包,比如 ^1.2.3 会匹配所有 1.x.x 的包,包括 1.3.0,但是不包括 2.0.0

* 安装最新版本的依赖包,比如 *1.2.3 会匹配 x.x.x,

那么该如何选择呢?当然你可以指定特定的版本号,直接写1.2.3,前面什么前缀都没有,这样固然没问题,但是如果依赖包发布新版本修复了一些小bug,那么需要手动修改package.json文件;~ 和 ^ 则可以解决这个问题。

但是需要注意 ^ 版本更新可能比较大,会造成项目代码错误,所以 建议使用 ~ 来标记版本号,这样

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值