我正在开发一个插件,收集具有特定名称的模块中的导出项。通过解析器导出钩子,我已经从各个文件中获取了数据,但是我似乎找不到如何提取解析器所操作的实际模块。
最初的回答: 我正在编写一个插件,用于从模块中收集特定名称的导出项。我已经通过解析器导出挂钩从各个文件中提取了数据,但是我无法确定如何提取解析器正在操作的实际模块。
最初的回答: 我正在编写一个插件,用于从模块中收集特定名称的导出项。我已经通过解析器导出挂钩从各个文件中提取了数据,但是我无法确定如何提取解析器正在操作的实际模块。
// hook into the module factory and get the exports
compiler.hooks.normalModuleFactory.tap(pluginName, factory => {
factory.hooks.parser.for('javascript/auto').tap(pluginName, parser => {
parser.hooks.export.tap(pluginName, (node) => {
this.parseMetadataNode(node);
});
});
});
parseMetadataNode是实际提取导出的方法,已经运行良好。
我该如何找到节点操作的模块或userRequest?我需要该节点的文件名!
请注意,该节点的文件名可以通过module或userRequest属性获得。
最初的回答:
您可以在该节点上查找module或userRequest属性,以获取该节点正在操作的模块或用户请求的文件名。
import
和export
的组合,它似乎可以同时提供节点和源代码--你尝试使用这个钩子了吗? - undefined