javascript - 无法从 webpackAsyncContext 读取未定义的属性“调用”(Webpack 错误)
问题描述
我的网站上的某些页面出现以下错误。它与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。)
现在,它具有默认加载。
解决方案
在条款和条件中,您引用了 AuthService 和 PageService。
我没有找到它们的声明位置。这个,即可能会错过 AuthService: https ://github.com/jasebanico/banicocms/blob/master/src/Banico.Web/ClientApp/app/shared/shared.module.ts
或者这个PageService: https ://github.com/jasebanico/banicocms/blob/master/src/Banico.Web/ClientApp/app/plugins/modules/page/page.module.ts
或者,您可以将@Injectable 与providedIn
这有帮助吗?
否则我觉得调试起来有点困难。所以我建议使用ng new
来创建一个新的项目结构(你可以添加选项来忽略 git repo 的创建)并将你的代码合并到。这样你在升级时就不必处理适配 webpack 等问题了。
推荐阅读
- python-3.x - 如何以干净的形式获得选定的值?
- c# - 在这种情况下,有没有办法将派生类转换为基类工作?
- java - 如何通过 Intellij 中的“运行”而不是通过命令行运行它?
- c++ - 比较序列的通用函数
- networking - TCP 连接启动方向 - 服务器实际上是否使用 SYN-ACK、FIN 等向客户端发送传入连接?
- ruby-on-rails - 参考架构帮助 - AWS Appflow 和 Rails 应用程序(SaaS 任何)用户信息集成
- android - 从选项卡片段调用活动视图
- flutter - 如何将值动态传递到 Flutter 中的自定义复选框小部件
- nuxt.js - Nightwatch E2E 浏览器不适用于 Github Actions
- c# - 如何编辑 XML