@babel/traverse 使用方法小记
2019-10-10 13:55 罗小二 阅读(8199) 评论(0) 编辑 收藏 举报@babel/traverse
官网: https://babeljs.io/docs/en/babel-traverse
github:https://github.com/babel/babel/blob/master/packages/babel-traverse/test/traverse.js
了解一个东西最直接的方法就是看官网了解怎么用,看github源码Test模块代码的使用和测试。
@babel/traverse 可以用来遍历更新@babel/parser生成的AST
-
对语法树中特定的节点进行操作(特殊节点的函数)
-
进入节点(enter)
-
退出节点 (exit)
traverse(ast, { CallExpression(p) { // 对语法树中特定的节点进行操作 参考@babel/types (特定节点类型) // CallExpression 特定节点 }, FunctionDeclaration: function(path) { // 对语法树中特定的节点进行操作 参考@babel/types (特定节点类型) // FunctionDeclaration 特定节点 } // ..... enter(path) { // 进入节点 if (path.node.type === "ThisExpression") { // 对所有的操作 }; } exit(path) { // 退出节点 console.log(` exit ${path.type}(${path.key})`) } })