将现有的 Angular 项目迁移到独立组件 - 无可用选项

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

我使用的是 Angular 版本 15.2.4,并决定使用迁移工具将我的组件转换为独立组件。

我遇到的问题是当我运行命令时:ng g @angular/core:standalone

从不可以选择迁移模式中建议的任何模式:https://angular.io/guide/standalone-migration#migration-modes

它似乎运行良好,应用程序仍然可以正常工作,但当我运行测试时,我遇到很多此类错误并且测试失败:

NullInjectorError:R3InjectorError(DynamicTestModule)[ActivatedRoute -> ActivatedRoute]:

NullInjectorError:没有激活路由的提供者!

对此的任何意见将不胜感激。

angular unit-testing migration angular-standalone-components
2个回答
1
投票

它可能对其他人有帮助,我的问题的解决方案是(在 @Eliseo 评论的帮助下)转到 main.ts 的底部并添加我在 app.module.ts 中使用的提供程序 文件,像这样:

//main.ts file
bootstrapApplication(AppComponent, {
  providers: [
    xxxService,
    xxxService,
    AppConfig,
    xxxConfig,
    {
      provide: SESSION_STORAGE_CONFIG,
      useValue: {
        namespace: "xxxx",
      },
    },
    {provide: ErrorHandler, useClass: GlobalErrorHandler},
    {
      provide: HTTP_INTERCEPTORS,
      useClass: ServerErrorInterceptor,
      multi: true,
    },
    importProvidersFrom(
      xxxModule.forRoot(),
    ),
  ]
}).then()

0
投票

这对我有用 要自动添加提供程序,您可以按顺序使用以下每个命令:

ng 生成 @angular/core:standalone --defaults

ng 生成 @angular/core:standalone --defaults --mode=prune-ng-modules

ng 生成 @angular/core:standalone --defaults --mode=standalone-bootstrap

© www.soinside.com 2019 - 2024. All rights reserved.