@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})`) } })
