我想解析导出语句的javascript文件的文本内容,并从模块中提取命名导出列表。
为什么呢?我希望扩展import-js
的Meteor环境以了解本地软件包,并且主要支持似乎能够解析和识别每个软件包的命名导出。
现有的实现标识了包名,路径和isopack,因此我可以轻松获得每个包的mainModule
的路径。我只需要帮助解析该文件以获取导出语句。
答案 0 :(得分:2)
您可以使用babylon
生成输入文件的JavaScript AST,然后检查ExportDefaultDeclaration
,ExportNamedDeclaration
和ExportAllDeclaration
的顶级。给出以下示例:
export default test;
export { foo as bar, baz };
export let lol = "okay then"; // also var, const
export * from 'import-js';
您可以使用this list of various supported syntaxes for export
并使用the explorer查看预期会生成哪些Babylon,然后您可以使用生成的JSON获取所需的已解析信息。