/mini-webpack

Primary LanguageJavaScript

mini-webpack

  • 实现过程的核心依赖
  • 根据 @babel/parser将代码转译为 AST 。
  • 根据 @babel/traverse解析 AST 获取,每个文件内部的依赖关系。

import 属于ESM语法webpack无法识别,需要使用require,并且使用 babel/core 把 esm 转为 cjs

通过 ejs 配置代码模版,生成合并打包后的js文件。

  • babel/core esm 转 cjs 时,如果出现了报错,可以安装 babel-preset-env 插件解决;

loader原理:

  • 将cjs模块不能识别的文件转译为能被识别的文件

plugin 原理:

  • 基于 webpack底层实现的事件机制,在不同的执行过程中会抛出不同的hooks函数,监听这些函数就可以做一些额外的行为