我使用的是 Angular 版本 15.2.4,并决定使用迁移工具将我的组件转换为独立组件。
我遇到的问题是当我运行命令时:ng g @angular/core:standalone
我从不可以选择迁移模式中建议的任何模式:https://angular.io/guide/standalone-migration#migration-modes
它似乎运行良好,应用程序仍然可以正常工作,但当我运行测试时,我遇到很多此类错误并且测试失败:
NullInjectorError:R3InjectorError(DynamicTestModule)[ActivatedRoute -> ActivatedRoute]:
NullInjectorError:没有激活路由的提供者!
对此的任何意见将不胜感激。
它可能对其他人有帮助,我的问题的解决方案是(在 @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()
这对我有用 要自动添加提供程序,您可以按顺序使用以下每个命令:
ng 生成 @angular/core:standalone --defaults
ng 生成 @angular/core:standalone --defaults --mode=prune-ng-modules
ng 生成 @angular/core:standalone --defaults --mode=standalone-bootstrap