无法导入类 LocalizeRouterModule(Angular 迁移)

Class LocalizeRouterModule cannot be imported (Angular migration)

提问人:Gladitor 提问时间:11/11/2023 最后编辑:The FabioGladitor 更新时间:11/14/2023 访问量:26

问:

我目前正在进行从 8.2 到 9.1.13 的 Angular 迁移。 编译器正在工作,但是当我进入页面时,我有一个空白页面。控制台给出此错误 enter image description here 当我调试时,我可以找到这个 enter image description here 我在我的app.module中找到了它

imports ...
import {LocalizeRouterModule} from "localize-router";

registerLocaleData(localeNl, 'nl');
registerLocaleData(localeFr, 'fr');
registerLocaleData(localeDe, 'de');

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/locales/', '.json');
}

const appInitializerFn = (appConfig: AppConfigService) => {
  return () => {
    return appConfig.loadAppConfig();
  };
};

@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    IdentificationComponent,
    WelcomeComponent,
    UploadEidComponent,
    AddressComponent,
    FinancialComponent,
    CommunicationComponent,
    FullUnemploymentHostDirective,
    FullUnemploymentComponent,
    RequestComponent,
    ErrorDialogComponent,
    MakingAppointmentComponent,
    ActivityComponent,
    IncomeComponent,
    MakingAppointmentComponent,
    FamilySituationComponent,
    FamilyMemberComponent,
    BlockCopyPasteDirective,
    OnlyNumberDirective,
    DatepickerPopupComponent,
    BreadcrumbButtonComponent,
    FullContactUploadDocumentsComponent,
    FullContactCompletedComponent,
    ConfirmationComponent,
    TokenExpiredComponent,
    MultiUploadComponent,
    DevelopmentComponent,
    CookieComponent
  ],
  imports: [
    StoreModule.forRoot(reducers),
    BrowserModule,
    LocalizeRouterModule,
    BrowserAnimationsModule,
    MatButtonToggleModule,
    MatIconModule,
    AppRoutingModule,
    DossierModule,
    FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
    SideNavModule,
    NgbModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: HttpLoaderFactory,
        deps: [HttpClient]
      }
    }),
    MatGridListModule
  ],
  providers: [AppConfigService, UserLoginService, AuthGuard, OnboardingRequestGuard, LoggedInUserService, AvailabilityService, CookieService, DatePipe,
    {provide: NgbDateParserFormatter, useClass: NgbDateCustomParserFormatter},
    {provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true},
    {provide: APP_INITIALIZER, useFactory: appInitializerFn, deps: [AppConfigService], multi: true}
  ],
  exports: [
    FamilySituationComponent
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

模块 LocalizeRouterModule 出现以下错误:无法导入 LocalizeRouterModule 类(既不是 Angular 模块也不是独立的可声明模块)

有人可以帮助我吗?

我尝试调试,我正在使用 localize-router,我应该更改它吗?

角度 迁移

评论


答:

0赞 The Fabio 11/12/2023 #1

问题是库 localize-router 不再受支持,因此它没有更新到 angular 9.x...查看其最新的 package.json,它支持 Angular 6.x,因此您以前的版本几乎不支持它。

如果你真的想继续使用它,你必须分叉“localize-router”库并自己升级到 angular v9.1.13,然后引用你的分叉代码。

我建议您尝试至少升级到 angular 14,以便您进入 LTS angular 版本。Angular 9.x 已经支持了几年...... 使用新的 angular 本地化结构,您可能只想停止使用“localize-router”库。

评论

0赞 Gladitor 11/13/2023
好的,但是一次迁移多个版本不是不可取吗?
0赞 The Fabio 11/14/2023
这更难,但留在旧的不受支持的版本中是危险的,并且很可能会使您的网站面临不必要的风险。绝对建议将你的应用保留在其创建者支持的依赖项中(保持在 LTS 时间范围内是一个很好的经验法则,因为大多数使用率高的库都会有发布计划)。
0赞 Gladitor 11/14/2023
好的,谢谢你的帮助