Webpack和捕获错误事件

时间:2017-09-08 18:51:34

标签: javascript error-handling webpack exception-handling

我试图在错误事件侦听器上获取原始错误。但是,当从不同的脚本连接监听器时,我得到通用的"脚本错误"没有堆栈跟踪。我的理解是这种情况发生在跨源脚本中。但是,我的所有脚本都存在于Webpack创建的应用程序包中。

示例

app.js

window.addEventListener("error", function (errEvt) {
    console.log(errEvt, window.myErr);
});

some-file.js

function generateError() {
    let foo = {};

    try {
        foo.bar();
    } catch (err) {
        window.myErr = err;
        throw new Error(err);
    }
}

这两者都捆绑在app.bundle.js

<script src="app/app.bundle.js"></script>

如果我将错误生成器附加到文档单击事件,那么我得到以下内容。

(app.js context) window.myErr --> TypeError: foo.bar is not a function
at errors (eval at <anonymous> (app.bundle.js:45), <anonymous>:37:13)

(app.js context) errEvt --> ErrorEvent {message: "Script error.", filename: "", lineno: 0, colno: 0…}

发生了什么?那么这些脚本不应该被认为是同一个来源(它们都是&#34;生活&#34;在app.bundle.js?有没有办法获得原始错误而不需要手动将它绑定到窗口对象中一个try / catch

参考

https://blog.sentry.io/2016/05/17/what-is-script-error.html

Get the actual Javascript Error object with window.onerror

0 个答案:

没有答案