为什么用window.onerror捕获webpack的错误,只显示script error

使用file:// 来加载index.html
我想捕获详细的错误,该怎么做呢

index.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="root" class="root"></div>
<script>

window.addEventListener("error", e => {
        console.log('addEventListener error', e)
        },true
    );



</script>

<script type="text/javascript" src="index_268954f1.js?268954f13e164a836c2d"></script></body>

</html>

webapck打包的index.js代码如下

let a =1;
console.log(a/b)

index.js打包后的代码如下:

/*! development build: Sat May 23 2020 22:10:23 GMT+0800 (GMT+08:00) */!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){console.log(1/b)}]);
//# sourceMappingURL=index_268954f1.js.map
阅读 77
评论 5月23日提问
    3 个回答
    评论 赞赏
      will
      • 2.5k

      e.message e.stack????

      评论 赞赏
        linong
        • 14.5k

        script error 是说当前报错这个资源是跨域的。无法显示详情。

        解决方案:

        1. 改成同一域名
        2. 允许跨域

          1. script 标签增加 crossorigin 属性
          2. 服务器 cors
        评论 赞赏
          撰写回答

          登录后参与交流、获取后续更新提醒