babeljs - 使用 babel traverse 获取 AST 中的评论
问题描述
我如何遍历评论babelTraverse
?
babelTraverse(nodes, {
CommentBlock: (path) => {
console.log(path)
},
CommentLine: (path) => {
console.log(path)
}
})
错误:您为我们提供了节点类型 CommentBlock 的访问者,但它不是有效类型
解决方案
CommentBlock
和CommentLine
不是babel 解析器返回的 的program.body
一部分。ast
这些注释类型位于程序主体之外。我假设这就是为什么我们在添加CommentLine
and时得到类型错误的原因CommentBlock
。
可以使用 访问节点的注释traverse
,如下所示:
traverse(ast, {
ClassDeclaration(path) {
console.log(path.node.leadingComments);
console.log(path.node.trailingComments);
},
});
推荐阅读
- bash - 通过 PyCharm IDE 打开时,在 bash 中向上滚动一行
- three.js - WebGL 1 中的 `blendFunci` 是否有等价物?
- unity3d - Snapped GO 的旋转无法正常工作
- typescript - TypeScript 和 JS 模块导入误区
- javascript - 意外的按钮单击行为。
- objective-c - NSPrintPanel 和双面设置问题
- python - 在 IPython 中安装 conda 包
- excel - Power Query 日期表 - 将范围更改为两年
- java - hibernate 不断更新第一条记录的值而不是创建新记录
- java - @OneToMany 或 @ManyToMany 针对未映射的类