babel工具之@babel/traverse(翻译)

2,468 阅读1分钟

安装

$ npm install --save @babel/traverse

使用

我们可以使用它与babel解析器一起遍历和更新节点:

import * as parser from "@babel/parser";
import traverse from "@babel/traverse";

const code = `function square(n) {
  return n * n;
}`;

const ast = parser.parse(code);

traverse(ast, {
  enter(path) {
    if (path.isIdentifier({ name: "n" })) {
      path.node.name = "x";
    }
  }
});

此外,我们可以针对语法树中的特定节点类型

traverse(ast, {
    FunctionDeclaration: function(path) {
             path.node.id.name = "x";
    }
})

:book:在这里阅读完整的文档