gpt4 book ai didi

javascript - Webpack 插件 API : getting source maps for a module during parsing

转载 作者:行者123 更新时间:2023-12-04 13:24:06 24 4
gpt4 key购买 nike

我正在编写代码分析器。我的分析仪使用 Webpack's JavaScriptParser hooks .我需要输出错误消息,但行号来自 node.loc关闭是因为加载程序已经转换了源代码。所以我想在记录之前通过源映射提供错误消息。

class FooPlugin {
apply(compiler) {
compiler.hooks.normalModuleFactory.tap("FooPlugin", factory => {
factory.hooks.parser
.for('javascript/auto')
.tap("FooPlugin", parser => {
parser.hooks.call.for("foo").tap("FooPlugin", expr => {
const map = getSourceMapSomehow(); /* ??? */
const originalLine = map.originalPositionFor(expr.loc.start).line;
console.log("foo() call found at line " + originalLine);
});
});
});
}
}
我不知道怎么填写 getSourceMapSomehow()在上面的例子中。如何在 JavaScriptParser 中获取当前模块的源映射钩?

最佳答案

我是通过阅读 Webpack 源代码弄清楚的。我需要的功能是 module.originalSource() .

const map = new SourceMapConsumer(parser.state.module.originalSource().map());
const originalLine = map.originalPositionFor(expr.loc.start).line;
console.log("foo() call found at line " + originalLine);

关于javascript - Webpack 插件 API : getting source maps for a module during parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69728076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com