npm install 原理解析

前端进阶内容,掌握可蜕变成中级前端程序员-来自小满的诉说~~~全是文字呀一定要耐心看完并且理解,最好去看一下小满的视频理解更深刻哦~~

原理流程:

1. npm install XXX (XXX代表要下载的包) 

2. 检查项目中的.npmrc文件

3.检查全局中的.npmrc文件

4.检查用户文件夹中的.npmrc文件

5.检查node安装目录下的.npmrc文件

6.检查项目文件中是否存在package-lock.json文件

        有的情况

        1.如果package-lock.json文件存在但是与package.json文件中包的版本不一致的时候,

会优先选择package.json里面的包进行下载更新,下载完成后更新package-lock.json文件。

        2.如果package-lock.json文件存在且和package.json 文件中的包版本一致的情况下,

它会去检查这个包是否安装过也就是是否有缓存的存在,有安装过就直接解压到node_moudles中

没有就下载安装,最后更新到package-lock中。

        没有的情况

        获取包的信息,构建依赖树或扁平化处理,检查依赖树中是否存在缓存,有缓存重复上面2的操作,没有缓存会自动从npm官网下载依赖包文件,最后更新。

包缓存是由package-lock.json文件去做的,大多数人的理解就是它是锁定版本号,记录依赖的信息。

那么它是如果去做缓存的呢?

可以打开项目中的package-lock.json文件看一下,它的缓存实现是由integrity+version+包名三个组合去生成一个唯一的key,之后在匹配是否有包缓存的时候就拿这个唯一的key去你的缓存文件夹下去找到对应的文件,这就是它缓存的流程。

最后在补充一下.npmrc,可以理解成npm running cnfiguration, 即npm运行时配置文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值