Tengo una aplicación angular 2 generada por ng cli.
- Cuando ejecuto ng build (o) ng build --prod --aot=false y sirvo la página, todo funciona bien.
- Pero cuando trato de habilitar aot ejecutando ng serve --aot=true y sirva, la página se rompe con múltiples errores DI como a continuaciónMuy difícil de depurar. ¿Alguna idea sobre cómo depurar estos problemas?
EXCEPCIÓN: ¡Ningún proveedor para Opciones!
error_handler.js:59 RASTREO DE LA PILA ORIGINAL:
ErrorHandler.handleError @ error_handler.js:59
(anónimo) @ application_ref.js:272
webpackJsonp.679.ZoneDelegate.invoke @ zone.js:229
onInvocar @ ng_zone.js:271
webpackJsonp.679.ZoneDelegate.invoke @ zone.js:228
webpackJsonp.679.Zone.run @ zone.js:113
(anónimo) @ 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
drenajeMicroTaskQueue @ zone.js:405
¿Por casualidad estás usando: angular2-logger ? Tuve exactamente el mismo error y lo descubrí aunque en realidad no uso las Opciones que tenía que proporcionarles para que funcionen.
Por ejemplo: en su AppModule, debe importar lo siguiente:
import {Logger, Options} from "angular2-logger/core";
Luego, en su lista de proveedores, asegúrese de agregar Opciones:
providers: [ Logger, Options // <-- this is key ]
Eso hizo que el AOT seguro incluyera "Opciones".
Ahora, ¿cómo me enteré? El error le da la pista de que no puede encontrar "Opciones". Así que usé las herramientas de desarrollo para mirar las fuentes generadas usando sourceMaps (miré main.bundle.js). Allí busqué la cadena "Opciones" y el único resultado me dio también la pista final:
__WEBPACK_IMPORTED_MODULE_9_angular2_logger_core__["Options"])
Ahora eso me hizo darme cuenta después de mirar los documentos que también tenía que proporcionar las Opciones.
Espero que esto ayude. :)