角度类型错误:_Angular_core_uuuwebpack_IMPORTED_MODULE_u1_uuu.&u35; x275ɵ;defineInjectable不是一个函数

角度类型错误:_Angular_core_uuuwebpack_IMPORTED_MODULE_u1_uuu.&u35; x275ɵ;defineInjectable不是一个函数,angular,typescript,webpack,lazy-loading,Angular,Typescript,Webpack,Lazy Loading,我正在运行我的应用程序,当我导航到地图路线时,出现以下错误: 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

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

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
这很奇怪,因为我将tm服务定义为路由模块中的提供者

@NgModule({
 providers: [
    {
      provide:
        HTTP_INTERCEPTORS
      ,

      useClass: AuthInterceptor,
      multi: true
    },
    TicketMasterService
  ],
})
我只在生产中遇到这个错误。当我在本地运行时,一切都很好

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);
    });
  }
}

@Jonathan你用的是哪个角度的版本


当我升级到angular 8时,我尝试了一个类似的问题

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

在网上冲浪之后,我发现了一些更新angular core cli依赖项的解决方案。。但他们都没有解决这个问题

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

确保在angular 8或更高版本中使用这些参数:

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


我希望这对某些人有用…

我曾尝试过类似的问题 转到
/node_modules/ng inline svg/lib_esmodule/svg cache.service.js
并搜索
ɵ
,然后将其删除 或者单击错误并搜索
ɵɵ
并删除它
我希望这对任何人都有用

您可以粘贴TicketMasterService吗?@Nosheep pastedremove在“平台”中提供,因为您已经将此服务作为模块级别的提供程序,或者反之亦然。@Nosheep仍然会收到相同的错误。。。我还注意到,当你点击路由两次时,你会发现这个错误
core.js:4117错误:Uncaught(承诺中):TypeError:Cannot read未定义TypeError的属性'úµmod':Cannot read getNgModuleDef(core.js:1880)的未定义属性'úµmod'
尝试完全删除Injectable()。
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);
    });
  }
}