我有一个由ng cli生成的角度2应用程序。
-当我运行ng build(或)ng build--prod--aot=false并提供页面时,事情进展顺利。
-但是当我尝试通过运行ng service--aot=true并提供服务来启用aot时,页面会出现多个DI错误,如下所示
很难调试。对如何调试这些问题有什么想法吗?
例外:没有选项的提供者!
error_handler. js:59 ORIGINAL STACKTRACE:
ErrorHandler.handleError@error_handler.js:59
(匿名)@application_ref.js:272
webpackJsonp.679.ZoneReposate.invoke@zone.js:229
onInvoke@ng_zone.js:271
webpackJsonp.679.ZoneReentate.invoke@zone.js:228
webpackJsonp.679.Zone.run@zone.js:113
(匿名)@zone.js:509
webpackJsonp.679.ZoneReentate.callkeTask@zone.js:262
onInvokeTask@ng_zone.js:262
webpackJsonp.679.ZoneReentate.callkeTask@zone.js:261
webpackJsonp.679.Zone.runTask@zone.js:
您是否有机会使用: angular2-logger?我遇到了完全相同的错误,并发现即使我实际上没有使用我必须为它们提供的选项--aot才能工作。
例如:在您的AppModule中必须以下导入:
import {Logger, Options} from "angular2-logger/core";
然后在您的提供者列表中确保您添加选项:
providers: [
Logger,
Options // <-- this is key
]
这确保了AOT包括“选项”。
现在,我是怎么发现的?这个错误给你提示它找不到“选项”。所以我使用开发人员工具使用source ceMaps(我查看main. bundle.js)查看生成的源。在那里我搜索了字符串“选项”,唯一的点击也给了我最后的提示:
__WEBPACK_IMPORTED_MODULE_9_angular2_logger_core__["Options"])
这让我在查看文档后意识到我也必须提供选项。
希望这有帮助。:)