首页 > 解决方案 > JavaScript 从缩小代码中获取调用者原始行号

问题描述

我尝试在包含多个源文件的 JavaScript 项目中实现一个小型自定义记录器。它被缩小了,但在开发过程中带有完整的源图。devtool: "inline-source-map"(网络包:)

如果我将错误对象记录到控制台,那么我可以看到真实的行号。但是,如果我想处理它并使用 Error.stack,那么我会从几乎没用的缩小代码中获取行号。

这是我的示例代码:

const err = new Error();
const stack = err.stack;

console.log('Error: ', err);
console.log('Error: ', stack);

和输出:

Error:  Error
    at log (background.ts:18)
    at background.ts:29
    at eventService.ts:170
    at util.ts:124
    ...

Error:  Error
    at log (chrome-extension://hkikkdnnkfiomhblbgonboibnjgkjocp/background.js:735:17)
    at chrome-extension://hkikkdnnkfiomhblbgonboibnjgkjocp/background.js:746:1
    at chrome-extension://hkikkdnnkfiomhblbgonboibnjgkjocp/background.js:889:3
    at chrome-extension://hkikkdnnkfiomhblbgonboibnjgkjocp/background.js:891:12
    ...

在缩小代码的情况下,有没有办法获得真正的来源?我可以以可处理的方式获得第一个错误输出吗?

标签: javascript

解决方案


推荐阅读