开始之前
模块化
在尝试写一个webpack之前,我们需要了解和熟悉模块化这个概念。
模块化的作用是增强代码可读性和维护性。
为什么需要模块化?模块化的目的是:
- 传统的网页开发转变成Web Apps开发,业务场景复杂了,有的逻辑需要放到浏览器端或者手机端的H5去实现
- 代码复杂度在逐步增高,为了降低代码逻辑的复杂度,就分离JS文件/模块,便于后续代码的维护性
- 部署时希望把代码优化成几个HTTP请求——代码分包
常见的模块化方式

AST基础知识

AST树的应用:
- 模板引擎的编译方法之一就是转换成一个个节点的字符流,然后转成AST树分析,然后将分析结果渲染成一个字符串。其他方法还有就是直接进行字符串匹配
- bable将ES6转成ES5
- TS转成JS
可以了解一下ast具体的生成规则。
在此基础上我们可以敲定我们要完成的简易webpack的基本要求:
