Babel-遍历根节点的包含

tmc*_*mcw 6 babeljs

我正在babel-traverse尝试查找最近的函数、类或变量的名称的代码中使用。有时函数名称是一步之遥的,例如var foo = function() {},但也有直接命名函数的情况,例如function foo() {}

我想要像我当前的代码一样的东西:

node.traverse({
  ClassDeclaration: function (path) {
    comment.kind = 'class';
    path.stop();
  },
  Function: visitFunction,
  FunctionExpression: visitFunction,
  ArrowFunctionExpression: visitFunction,
  TypeAlias: function (path) {
    comment.kind = 'typedef';
    path.stop();
  },
  VariableDeclaration: function (path) {
    if (path.node.kind === 'const') {
      comment.kind = 'constant';
      path.stop();
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

traverse但是对于将其自身包含node在第一次遍历中的调用。有没有办法做到这一点?