用 babel 做一个React 转小程序的转换器,babel工作流程的粗略情况是这样的:

198 阅读1分钟

用babel做一个React转小程序的转换器

babel工作流程大致:

  1. babel 将 React 代码解析为抽象语法树
  2. 开发者利用 babel 插件定义转换规则,根据原本的抽象语法树生成一个符合小程序规则的新抽象语法树
  3. babel则根据新的抽象语法树生成代码,此时的小程序就是符合小程序规则的新代码

例如 Taro就是用 babel 完成的小程序语法转换.

到这里大家就明白了,我们转换代码的关键就是根据当前的抽象语法树,以我们定义的规则生成新的抽象语法树,转换的过程就是生成新抽象语法树的过程.