Angular TypeError:_angular_core__WEBPACK_IMPORTED_MODULE_1__.??defineInjectable 不是函数

Jon*_*han 6 lazy-loading typescript webpack angular

我正在运行我的应用程序LiveCicle,当我导航到地图路线时,出现此错误:

\n\n
ERROR Error: Uncaught (in promise): TypeError: _angular_core__WEBPACK_IMPORTED_MODULE_1__.\xc9\xb5\xc9\xb5defineInjectable is not a function\nTypeError: _angular_core__WEBPACK_IMPORTED_MODULE_1__.\xc9\xb5\xc9\xb5defineInjectable is not a function\n    at tm.service.ts:9\n
Run Code Online (Sandbox Code Playgroud)\n\n

这很奇怪,因为我将 tm 服务定义为路由模块中的提供者。

\n\n
@NgModule({\n providers: [\n    {\n      provide:\n        HTTP_INTERCEPTORS\n      ,\n\n      useClass: AuthInterceptor,\n      multi: true\n    },\n    TicketMasterService\n  ],\n})\n
Run Code Online (Sandbox Code Playgroud)\n\n
const routes: Routes = [\n  {path: \'map\',   loadChildren: () => import(\'./event-map-page/event-map-page.module\').then(m => m.EventMapPageModule)},\n\n  {path: \'**\', redirectTo: \'\', pathMatch: \'full\'},\n\n];\n\n@NgModule({\n  imports: [RouterModule.forRoot(routes)],\n  exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n
Run Code Online (Sandbox Code Playgroud)\n\n

我只在生产中遇到此错误。当我在本地运行时,一切正常。

\n\n
import { Injectable, OnInit } from \'@angular/core\';\nimport { HttpClient, HttpParams, HttpHeaders } from \'@angular/common/http\';\nimport { environment } from \'../../environments/environment\';\nimport { DataService } from \'../../services/dataService/data.service\';\nimport { TmEvent } from \'../../models/tmEvent/tm-event.model\';\n@Injectable()\nexport class TicketMasterService {\n  noAuthHeader = { headers: new HttpHeaders({ \'NoAuth\': \'True\'})};\n  private readonly TM_EVENTS = \'TM_EVENTS\';\n  tmEvents: any = [];\n  constructor(private http: HttpClient, private data: DataService) {\n  }\n\n  fetchTmData() {\n    this.http.get(environment.apiBaseUrl + \'/ticketmaster-events\', this.noAuthHeader).subscribe(res => {\n      this.getTheFields(res);\n    });\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

小智 1

@乔纳森你使用哪个角度版本?

当我更新到 Angular 8 时,我也遇到了类似的问题。

和您一样,我的应用程序在本地运行良好,但在生产中运行不佳。延迟加载或双击事件无法正常工作,并且应用程序引发了类似的错误。

在网上冲浪后,我找到了一些更新 Angular Core、cli 依赖项的解决方案。但没有一个解决问题。

就我而言,问题出在生产配置文件中,特别是 tsconfig.e2e.json 文件中。但还要检查 tsconfig.json 文件中的本地配置。

确保您将这些参数用于 Angular 8 或更高版本:

“模块”:“esnext”,“moduleResolution”:“节点”,“目标”:“es5”

我希望这对某人有用......