page navigationend cambiar angular karma-runner angular-routing

navigationend - title angular 6



error de prueba angular de 4 unidades `TypeError: ctor no es un constructor` (5)

Esto puede ser un error en las declaraciones de los proveedores.

Cuando intenta burlarse de un proveedor y usar useClass en lugar de useValue, se genera el error "TypeError: ctor no es un constructor".

Aquí hay un ejemplo que dispara el error:

providers: [{provide: OrderService, useClass: new OrderServiceMock()}]

La declaración correcta es:

providers: [{provide: OrderService, useValue: new OrderServiceMock()}]

Estoy tratando de probar mi solucionador de ruta y durante la prueba obtuve TypeError: ctor is not a constructor y no tengo idea de por qué sucede mientras que el tiempo de compilación mecanografiado no produce errores.

TypeError: ctor is not a constructor TypeError: ctor is not a constructor at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42355:26) at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26) at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17) at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42362:26) at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26) at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17) at NgModuleRef_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgModuleRef_.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:43401:16) at TestBed.webpackJsonp../node_modules/@angular/core/@angular/core/testing.es5.js.TestBed.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:48412:47) at http://localhost:9877/_karma_webpack_/vendor.bundle.js:48418:61 at Array.map (native)


Recibí exactamente el mismo mensaje cuando construí mi aplicación con AOT.

Mi problema no estaba relacionado con los proveedores como sugirió @abahet.

Fue porque configuré una nueva biblioteca que no era compatible con AOT (y tampoco tenía ningún proveedor). La biblioteca en cuestión tuvo que exportar (estoy hablando de la exportación de Typecript, no la del módulo Angular) lo que se importó en el módulo (en este caso, un componente y una tubería).


Tercera posibilidad para usted, tenía un módulo que contenía otros módulos y no exporté (en lenguaje mecanografiado) los otros módulos.


Tuve este problema con Angular Universal en combinación con Firebase en un proyecto Firebase Universal Starter. Casi había perdido la esperanza ya que todas las posibles soluciones en el desbordamiento de la pila no ayudaron. Entonces hice lo siguiente:

  1. Actualice todos los paquetes npm con https://www.npmjs.com/package/npm-check-updates
  2. Elimine node_modules y .package-lock.json y vuelva a instalarlos
  3. Se corrigieron todos los errores debido al cambio de la API
  4. Ahora estaba funcionando :-)

Nunca descubrí qué paquete causó el error, pero un enfoque para descubrirlo es crear un MockAppModule donde elimine los módulos uno por uno. Eventualmente encontrarás el que tiene el problema. Pero en mi caso tuve suerte, supongo que debido a que uno de los paquetes con errores se actualizó o algo así.


Yo también tuve este problema con AOT habilitado. Agregué un nuevo archivo de servicio. Reinicié el compilador y el problema está resuelto.