【发布时间】:2020-03-14 00:28:30
【问题描述】:
我的网站上的某些页面出现以下错误。它与Webpack有关。
TypeError: Cannot read property 'call' of undefined
为什么会出现这个错误?
堆栈跟踪没有显示我的任何代码。它发生在 Webpack 代码中:
function webpackAsyncContext(e) {
if (!n.o(r, e))
return Promise.resolve().then((function() {
var t = new Error("Cannot find module '" + e + "'");
throw t.code = "MODULE_NOT_FOUND",
t
}
));
var t = r[e]
, o = t[0];
return Promise.all(t.slice(1).map(n.e)).then((function() {
return n(o) // <---- ERROR HAPPENING HERE
}
))
}
更新1:
错误堆栈跟踪如下:
main-client.js?v=HBU…YpSTrLMew46Jy0:1644 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined
TypeError: Cannot read property 'call' of undefined
at __webpack_require__ (main-client.js?v=HBU…HNYpSTrLMew46Jy0:20)
at main-client.js?v=HBU…pSTrLMew46Jy0:38946
at ZoneDelegate.invoke (main-client.js?v=HBU…pSTrLMew46Jy0:39643)
at Object.onInvoke (main-client.js?v=HBU…YpSTrLMew46Jy0:7197)
at ZoneDelegate.invoke (main-client.js?v=HBU…pSTrLMew46Jy0:39643)
at Zone.run (main-client.js?v=HBU…pSTrLMew46Jy0:39537)
at main-client.js?v=HBU…pSTrLMew46Jy0:40017
at ZoneDelegate.invokeTask (main-client.js?v=HBU…pSTrLMew46Jy0:39656)
at Object.onInvokeTask (main-client.js?v=HBU…YpSTrLMew46Jy0:7189)
at ZoneDelegate.invokeTask (main-client.js?v=HBU…pSTrLMew46Jy0:39656)
at resolvePromise (main-client.js?v=HBU…pSTrLMew46Jy0:39975)
at resolvePromise (main-client.js?v=HBU…pSTrLMew46Jy0:39952)
at main-client.js?v=HBU…pSTrLMew46Jy0:40018
at ZoneDelegate.invokeTask (main-client.js?v=HBU…pSTrLMew46Jy0:39656)
at Object.onInvokeTask (main-client.js?v=HBU…YpSTrLMew46Jy0:7189)
at ZoneDelegate.invokeTask (main-client.js?v=HBU…pSTrLMew46Jy0:39656)
at Zone.runTask (main-client.js?v=HBU…pSTrLMew46Jy0:39568)
at drainMicroTaskQueue (main-client.js?v=HBU…pSTrLMew46Jy0:39754)
defaultErrorLogger @ main-client.js?v=HBU…YpSTrLMew46Jy0:1644
ErrorHandler.handleError @ main-client.js?v=HBU…YpSTrLMew46Jy0:1663
next @ main-client.js?v=HBU…YpSTrLMew46Jy0:7472
i @ main-client.js?v=HBU…YpSTrLMew46Jy0:6748
SafeSubscriber.__tryOrUnsub @ main-client.js?v=HBU…pSTrLMew46Jy0:27250
SafeSubscriber.next @ main-client.js?v=HBU…pSTrLMew46Jy0:27224
Subscriber._next @ main-client.js?v=HBU…pSTrLMew46Jy0:27204
Subscriber.next @ main-client.js?v=HBU…pSTrLMew46Jy0:27196
Subject.next @ main-client.js?v=HBU…pSTrLMew46Jy0:36275
EventEmitter.emit @ main-client.js?v=HBU…YpSTrLMew46Jy0:6735
(anonymous) @ main-client.js?v=HBU…YpSTrLMew46Jy0:7207
ZoneDelegate.invoke @ main-client.js?v=HBU…pSTrLMew46Jy0:39643
Zone.run @ main-client.js?v=HBU…pSTrLMew46Jy0:39537
NgZone.runOutsideAngular @ main-client.js?v=HBU…YpSTrLMew46Jy0:7232
onHandleError @ main-client.js?v=HBU…YpSTrLMew46Jy0:7206
ZoneDelegate.handleError @ main-client.js?v=HBU…pSTrLMew46Jy0:39645
Zone.runGuarded @ main-client.js?v=HBU…pSTrLMew46Jy0:39550
_loop_1 @ main-client.js?v=HBU…pSTrLMew46Jy0:39890
Zone.__load_patch.n.microtaskDrainDone @ main-client.js?v=HBU…pSTrLMew46Jy0:39896
drainMicroTaskQueue @ main-client.js?v=HBU…pSTrLMew46Jy0:39760
Promise.then (async)
scheduleMicroTask @ main-client.js?v=HBU…pSTrLMew46Jy0:39741
ZoneDelegate.scheduleTask @ main-client.js?v=HBU…pSTrLMew46Jy0:39652
onScheduleTask @ main-client.js?v=HBU…pSTrLMew46Jy0:39617
ZoneDelegate.scheduleTask @ main-client.js?v=HBU…pSTrLMew46Jy0:39648
Zone.scheduleTask @ main-client.js?v=HBU…pSTrLMew46Jy0:39586
Zone.scheduleMicroTask @ main-client.js?v=HBU…pSTrLMew46Jy0:39592
scheduleResolveOrReject @ main-client.js?v=HBU…pSTrLMew46Jy0:40011
resolvePromise @ main-client.js?v=HBU…pSTrLMew46Jy0:39971
(anonymous) @ main-client.js?v=HBU…pSTrLMew46Jy0:39928
webpackJsonpCallback @ main-client.js?v=HBU…YHNYpSTrLMew46Jy0:5
(anonymous) @ 0.js:formatted:1
更新 2:
从 Angular 7.2 升级到 9.1 后出现堆栈跟踪错误。还是同样的问题。
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'call' of undefined
TypeError: Cannot read property 'call' of undefined
at __webpack_require__ (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:24)
at Module.280 (3.js:1)
at __webpack_require__ (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:24)
at main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:57250
at ZoneDelegate.invoke (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58417)
at Object.onInvoke (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:13800)
at ZoneDelegate.invoke (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58417)
at Zone.run (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58227)
at main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58839
at ZoneDelegate.invokeTask (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58440)
at resolvePromise (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58793)
at resolvePromise (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58761)
at main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58840
at ZoneDelegate.invokeTask (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58440)
at Object.onInvokeTask (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:13791)
at ZoneDelegate.invokeTask (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58440)
at Zone.runTask (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58267)
at drainMicroTaskQueue (main-client.js?v=En9ov5sOxlQIVwZOduy8ehlKv7mPkjk-C6t7aJXanQY:formatted:58572)
更新 3:
这与延迟加载有关。当我将其更改为默认加载(直接导入模块)时,它起作用了。 (我还更新了 href 并将其替换为 routerLink。)
现在,它有默认加载。
【问题讨论】:
-
我没有收到错误消息——但是,对于 HTTPS 页面,我的浏览器会询问我是否要安装应用程序——但如果我访问 HTTP 则不会。所以也许这就是问题所在?或者可能发布输出此错误的代码部分。
-
@JeffVdovjak 它现在在 HTTP 和 HTTPS 中都发生了,所以我已经更新了我的问题并放入了发生错误的代码部分。
-
可能是由于 gstatic cookie。至少这是我在 chrome 中得到的警告。不过,我在提供的网址上没有收到任何错误。你修好了吗?
-
我没有收到任何错误。尝试从您的浏览器硬重新加载或使用其他浏览器,可能是缓存问题
-
我在不同的计算机和浏览器(Chrome、Firefox、Safari)上尝试过,但都失败了。 (页面应该显示帖子内容,而不仅仅是标题栏。)我已经使用堆栈跟踪更新了帖子。
标签: javascript angular webpack