simplepack
编写前储备知识
AST(abstract syntax tree)
抽象语法树,或者叫语法树。是源代码的抽象语法结构的树状变现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构。
应用场景
模板引擎
常见的模板引擎的实现方式有两种- 正则匹配
- 使用AST将模板引擎转换为字符串流、分析、render
- ES6 转ES5
- TS转JS
webpack的模块机制
webpack打包之后的源码此处不再po
- webpack打包之后函数是一个匿名闭包(立即执行)函数.
- 匿名函数中接收一个参数,该参数是一个数组,数组中的每一项为模块初始化函数
- __webpack_require 用于加载模块,返回module.export
- 通过WEBPACK_REQUIRE_METHOD(0)启动程序
技术点分析
ES6转换为ES5
- 使用 babylon 生成AST
- 通过babel-core 将AST重新生成ES5代码
分析模块之间的依赖关系
- 通过babel-traverse 的importDeclaration 方法获取依赖属性