我正在编写一个使用babel.transform
来检测导出模块的函数,例如default&命名出口。
对于默认导出和命名导出,我使用以下babel类型进行检测:
ExportDefaultDeclaration
ExportNamedDeclaration
但我想支持上面指定的任何类型都未检测到的module.exports
。
我尝试了DeclareModuleExports
类型而没有运气。
任何人都知道我应该使用什么类型?
答案 0 :(得分:1)
这没有AST类型。 ASTExplorer是探索这类事物的好工具。以下是您的代码示例:http://astexplorer.net/#/gist/46c661d47a6e789437d197ba8d7b1ca8/559ef96e774151f76e2b0e7ff36dc9685d574939
您必须检测对名为module
的变量的任意访问,然后查找名为exports
的属性。例如,在Babel插件中,您可以找到一个寻找
MemberExpression(path) {
if (
path.get("object").isIdentifier({name: "module"}) &&
path.get("property").isIdentifier({name: "exports"})
) {
// whatever
}
},