为什么当我使用 esbuild 构建 Angular 应用程序时不断收到 NG0203 错误?

问题描述 投票:0回答:1

我正在尝试迁移到 esbuild 来构建我的 Angular 应用程序。我已经完成了我需要做的所有事情,但我不断看到控制台中记录了此错误:

Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with 
runInInjectionContext
 

我已经尝试了“使用应用程序生成器”中描述的所有内容:https://angular.io/guide/esbuild

我的 app.config.ts 看起来像这样:

export const appConfig: ApplicationConfig = {
  providers: [
    importProvidersFrom(
      BrowserModule,
      SharedModule,
      DataSetModule,
      LookUpTablesModule,
      NormsModule,
      StoreModule.forRoot({
        mappings: mappingsReducer,
        auth: authReducer,
      }),
      EffectsModule.forRoot([AuthEffects])
    ),
    provideAnimations(),
    provideHttpClient(),
    provideRouter(routes),
  ],
};

我注入了这样的类,它与前构建器一起工作:

constructor(
    private router: Router,
    public excelDownload: ExcelDownloadService,
    private route: ActivatedRoute,
    private dataSetService: DataSetService
  ) {} ```

Edit: this is the exact error that is being logged:
`ERROR Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`. Find more at https://angular.io/errors/NG0203
    at injectInjectorOnly (core.mjs:985:15)
    at ɵɵinject3 (core.mjs:998:42)
    at Object.factory (core.mjs:27529:46)
    at core.mjs:6247:43
    at runInInjectorProfilerContext (core.mjs:948:9)
    at R3Injector.hydrate (core.mjs:6246:17)
    at R3Injector.get (core.mjs:6114:33)
    at definition.getStandaloneInjector (core.mjs:27545:31)
    at ComponentFactory.create (core.mjs:15477:57)
    at _ApplicationRef.bootstrap (core.mjs:31863:42)`
angular dependency-injection esbuild
1个回答
0
投票

请一一删除这些模块以找出有问题的模块。如果根组件是独立的,则剩余的导入可以移动到根组件的导入中,如果不是,您可以添加到应用程序模块的导入数组中!

不要使用

BrowserModule
,而是使用
CommonModule
,这可能会给您带来一些错误!

@Component({
    imports: [
      CommonModule,
      SharedModule,
      DataSetModule,
      LookUpTablesModule,
      NormsModule,
    ]
})
export class App {

}
  

在我看来,可能只需要这两个就可以了

importProvidersFrom

export const appConfig: ApplicationConfig = {
  providers: [
    importProvidersFrom(
      StoreModule.forRoot({
        mappings: mappingsReducer,
        auth: authReducer,
      }),
      EffectsModule.forRoot([AuthEffects])
    ),
    provideAnimations(),
    provideHttpClient(),
    provideRouter(routes),
  ],
};
© www.soinside.com 2019 - 2024. All rights reserved.