webpack mini打包器

50 阅读1分钟

概览

  1. 初始化参数
    1. 从配置文件和shell命令中 读取、合并 参数
  2. 开始编译
    1. 使用配置参数初始化 compiler 对象
    2. 挂载插件
    3. 依据配置文件,找到 entry 入口模块
  3. 编译模块
    1. 配置文件中的 Loader,从 entry 开始编译所有模块
    2. 找到所有以来文件/模块
  4. 完成编译
    1. 产出编译的数据(对象、数组、json ……)
  5. 输出资源
    1. 组装 chunk
    2. 将 chunk 转换为文件添加至输出列表
  6. 写入磁盘
    1. 确定输出内容
    2. 路径 + 写入 + 缓存

流程

  1. 入口调试 webpack.congig.js image.png image.png

  2. 初始化 webpack.js image.png

  3. 合并配置参数 webpack.js image.png

  4. 插件挂载 image.png image.png image.png

  5. tapable - 发布订阅

    1. webpack 内置,无需单独安装 image.png image.png image.png
  6. 打包入口处理 image.png image.png

  7. loader image.png image.png

  8. 入口绝对路径 image.png

  9. 统一路径分割符 image.png image.png

  10. loader 执行 image.png

  11. 转化为 ast image.png image.png

npm install 
@babel/parser // 转化为 AST 抽象语法树
@babel/traverse // 遍历 AST
babel-types // 修改 AST
@babel/generator // 修改后的 AST 再转化为可运行的代码

image.png image.png