@babel/traverse 使用方法小記


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM