mecanografiado - Angular TypeError: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ɵɵdefineInjectable no es una función
Estoy ejecutando mi aplicación LiveCicle y cuando navego a la ruta del mapa obtengo este error:
ERROR Error: Uncaught (in promise): TypeError: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ɵɵdefineInjectable is not a function
TypeError: _angular_core__WEBPACK_IMPORTED_MODULE_1__.ɵɵdefineInjectable is not a function
at tm.service.ts:9
Esto es raro porque estoy definiendo el servicio tm como un proveedor en el módulo de la ruta.
@NgModule({
providers: [
{
provide:
HTTP_INTERCEPTORS
,
useClass: AuthInterceptor,
multi: true
},
TicketMasterService
],
})
const routes: Routes = [
{path: 'map', loadChildren: () => import('./event-map-page/event-map-page.module').then(m => m.EventMapPageModule)},
{path: '**', redirectTo: '', pathMatch: 'full'},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Solo recibo este error en producción. Todo funciona perfectamente cuando lo ejecuto localmente.
import { Injectable, OnInit } from '@angular/core';
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
import { environment } from '../../environments/environment';
import { DataService } from '../../services/dataService/data.service';
import { TmEvent } from '../../models/tmEvent/tm-event.model';
@Injectable()
export class TicketMasterService {
noAuthHeader = { headers: new HttpHeaders({ 'NoAuth': 'True'})};
private readonly TM_EVENTS = 'TM_EVENTS';
tmEvents: any = [];
constructor(private http: HttpClient, private data: DataService) {
}
fetchTmData() {
this.http.get(environment.apiBaseUrl + '/ticketmaster-events', this.noAuthHeader).subscribe(res => {
this.getTheFields(res);
});
}
}
Respuesta #1
Experimenté con un problema similar, vaya a ./node_modules/ng-inline-svg/lib_esmodule/svg-cache.service.js y busque ɵɵ y elimínelo o haga clic en el error y busque ɵɵ y elimínelo. Espero que esto pueda ser útil para alguien.
Respuesta #2
@Jonathan ¿qué versión de Angular estás usando?
Experimenté con un problema similar cuando actualicé a Angular 8.
Como tú, mi aplicación funcionaba bien localmente pero no en producción. La carga perezosa o los eventos de doble clic no funcionaban bien y la aplicación lanzó un error similar.
Después de navegar por Internet, encontré algunas soluciones actualizando las dependencias de Angular core, CLI... pero ninguna de ellas resolvió el problema.
En mi caso, el problema estaba en los archivos de configuración de producción, específicamente en el archivo tsconfig.e2e.json. Pero también revisa tu configuración local en el archivo tsconfig.json.
Asegúrate de que estás utilizando estos parámetros para Angular 8 o versiones posteriores:
"module": "esnext", "moduleResolution": "node", "target": "es5"
Espero que esto pueda ser útil para alguien...