webpack编译过程

webpack编译过程

  1. 初始化

     此阶段,webpack会将**CLI参数**、**配置文件**、**默认配置**进行融合,形成一个最终的配置对象。
    

    ​ 对配置的处理过程是依托一个第三方库yargs完成的

    ​ 此阶段相对比较简单,主要是为接下来的编译阶段做必要的准备

    ​ 目前,可以简单的理解为,初始化阶段主要用于产生一个最终的配置

  2. 编译

    1. 创建chunk

      • 它通过入口找到所有依赖的模块的统称,根据入口模块(默认为src/index.js)创建一个chunk
      • 每个chunk至少都有两个属性
        • name:默认为main
        • id:唯一编号,开发环境和name相同,生产环境是一个数字,从0开始
    2. 构建所有依赖模块

      每个chunk都有一个模块记录,一个模块编译完了之后,会对依赖的模块继续进行编译(模块有缓存如果加载过了就不会加载了)
      在这里插入图片描述
      在这里插入图片描述

    3. 产生chunk assets

      在第二步完成之后,chunk中会产生一个模块列表,列表中包含了模块id模块转换后的代码

      接下来,webpack会根据配置为chunk生成一个资源列表,即chunk assets,资源列表可以理解为是生成到最终文件的文件名和文件内容

    在这里插入图片描述

    chunk hash是根据所有chunk assets的内容生成的一个hash字符串
    hash:一种算法,具体有很多分类,特点是将一个任意长度的字符串转换为一个固定长度的字符串,而且可以保证原始内容不变,产生的hash字符串就不变

    简图

    在这里插入图片描述

    1. 合并chunk assets

    将多个chunk的assets合并到一起,并产生一个总的hash

    在这里插入图片描述

  3. 输出

此步骤非常简单,webpack将利用node中的fs模块(文件处理模块),根据编译产生的总的assets,生成相应的文件。

在这里插入图片描述

总过程

在这里插入图片描述

在这里插入图片描述

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值