1 编译工作流与抽象语法树(AST)
Taro 的核心部分就是将代码编译成其他端(H5、小程序、React Native 等)代码。一般来说,将一种结构化语言的代码编译成另一种类似的结构化语言的代码包括以下几个步骤
首先是 Parse ,将代码解析( Parse )成抽象语法树(Abstract Syntex Tree),然后对 AST 进行遍历( traverse )和替换( replace )(这对于前端来说其实并不陌生,可以类比 DOM 树的操作),最后是生成( generate ),根据新的 AST 生成编译后的代码…
2 Babel 模块
Babel 是一个通用的多功能的 JavaScript编译器,更确切地说是源码到源码的编译器,通常也叫做转换编译器(transpiler)。 意思是说你为 Babel 提供一些 JavaScript 代码,Babel 更改这些代码,然后返回给你新生成的代码…