Использование babel traverse для получения комментариев в AST

Как просматривать комментарии с помощью babelTraverse?

babelTraverse(nodes, {
  CommentBlock: (path) => {
    console.log(path)
  },
  CommentLine: (path) => { 
    console.log(path)
  }
})

Ошибка: вы указали нам посетителя для узла типа CommentBlock, но это недопустимый тип

2 ответа

В CommentBlock а также CommentLine не являются частью program.body в astвозвращается синтаксическим анализатором babel. Эти типы комментариев существуют вне тела программы. Я предполагаю, что именно поэтому мы получаем ошибку типа при добавленииCommentLine а также CommentBlock.

Комментарии для узла можно получить, используя traverse, следующим образом:

traverse(ast, {
  ClassDeclaration(path) {
    console.log(path.node.leadingComments);
    console.log(path.node.trailingComments);
  },
});

Похоже, вы не можете пройти по этому пути, но вы можете получить доступ к комментариям с помощью:

nodes.comments

Другие вопросы по тегам