webpack - 如何在 webpack 解析器中获取文件名?
问题描述
我正在开发一个插件,该插件从模块中收集具有特定名称的导出。我已经通过解析器导出挂钩从单个文件中获取数据,但我似乎无法找出如何提取解析器正在运行的实际模块。
// 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?我需要那个节点的文件名!
解决方案
You can probably check parser.state
compiler.hooks.normalModuleFactory.tap(pluginName, factory => {
factory.hooks.parser.for('javascript/auto').tap(pluginName, parser => {
parser.hooks.export.tap(pluginName, (node) => {
const { module: { rawRequest } } = parser.state;
// ..
});
});
});
推荐阅读
- android - > 任务 :app:checkDebugAarMetadata 在运行 react-native run-android 时失败
- sql-server - 在带有 LINQ 的 Entity Framework 6 中,如何生成参数化的 IN 表达式?
- php - 如何回显 json_decode 数组?
- certificate - 安装屏蔽数字证书
- extjs - 选择选取器未在移动模式下启动边缘选取器
- java - 系统中的通知声音已静音
- sign - 文件自签名后已被修改或损坏!(数据)
- python - (导入错误)由于尝试安装 gensim.models,因此无法使用 pip 安装软件包
- c++ - 如何将 Void* 转换为 size_t?
- node.js - NodeJS如何获取返回400 Bad Request的请求正文