首页 文章

如何调试角度2 aot故障

提问于
浏览
6

我有一个由ng cli生成的角度2应用程序 . - 当我运行build(或)ng build --prod --aot = false并提供页面时,一切正常 . - 但是当我尝试通过运行ng serve --aot = true并提供服务来启用aot时,页面会出现多个DI错误,如下所示很难调试 . 有关如何调试这些问题的任何想法?

例外:没有选项提供商!
error_handler.js:59 ORIGINAL STACKTRACE:
ErrorHandler.handleError @ error_handler.js:59
(匿名)@ application_ref.js:272
webpackJsonp.679.ZoneDelegate.invoke @ zone.js:229
onInvoke @ ng_zone.js:271
webpackJsonp.679.ZoneDelegate.invoke @ zone.js:228
webpackJsonp.679.Zone.run @ zone.js:113
(匿名)@ zone.js:509
webpackJsonp.679.ZoneDelegate.invokeTask @ zone.js:262
onInvokeTask @ ng_zone.js:262
webpackJsonp.679.ZoneDelegate.invokeTask @ zone.js:261
webpackJsonp.679.Zone.runTask @ zone.js:151
drainMicroTaskQueue @ zone.js:405

1 回答

  • 15

    你有没有机会使用: angular2-logger ?我've had the exact same error and found out even though I don'实际上使用了我必须提供的选项 - 很多工作 .

    例如:在您的AppModule中必须执行以下操作:

    import {Logger, Options} from "angular2-logger/core";
    

    然后在您的提供商列表中确保添加选项:

    providers: [
      Logger,
      Options // <-- this is key
    ]
    

    这使得确定的AOT包括“选项” .

    现在,我是怎么发现的?该错误为您提供了无法找到“选项”的提示 . 所以我使用Developer Tools来查看使用sourceMaps生成的源代码(我查看了main.bundle.js) . 在那里我搜索了字符串“选项”,唯一的命中也给了我最后的提示:

    __WEBPACK_IMPORTED_MODULE_9_angular2_logger_core__["Options"])
    

    现在,在查看了我必须提供选项的文档后,我才意识到这一点 .

    希望这可以帮助 . :)

相关问题