Babel 编译过程原理剖析 All In One
Babel 编译过程原理剖析 All In One
Babel 是一个 js 编译器与大多数编译器的工作过程类似可以分为三部分
-
解析 / Parse
将 js 源代码转换成更加抽象的表示方法(抽象语法树 / AST);
包括词法分析和语法分析
词法分析主要把字符流源代码(Char Stream)转换成令牌流( Token Stream),
语法分析主要是将令牌流转换成抽象语法树 / Abstract Syntax Tree。 -
转换 / Transform
通过 Babel 的插件能力,对(抽象语法树)做一些特殊处理,将高版本语法的 AST 转换成支持低版本语法的 AST;
让它符合编译器的期望,当然在此过程中也可以对 AST 的 Node 节点进行优化操作,比如添加、更新以及移除节点等。 -
生成 / Generate
将 AST 转换成字符串形式的低版本 js 代码,同时创建 Source Map 映射
refs
©xgqfrms 2012-2020
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/15969474.html
未经授权禁止转载,违者必究!