Ionic 4 ленивый загруженный маршрут - модуль не найден - PullRequest
0 голосов
/ 28 апреля 2019

У меня много проблем с Ionic 4 и лениво загруженными модулями, по какой-то причине он продолжает сообщать, что указанный ниже модуль входа в систему не может быть найден, если я отредактирую файл route.module.ts и сохраню его, иногда он его находит.Кто-нибудь сталкивался с этой проблемой еще и знает, как исправить?

error in app.module.ts Error: Uncaught (in promise): Error: Cannot find module './pages/auth/login/login.module'
Error: Cannot find module './pages/auth/login/login.module'

// модуль основного приложения

        import { ErrorHandler, NgModule } from '@angular/core';
        import { BrowserModule } from '@angular/platform-browser';
        import { RouteReuseStrategy } from '@angular/router';

        import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
        // AoT requires an exported function for factories
        export function HttpLoaderFactory(http: HttpClient) {
            return new TranslateHttpLoader(http, 'assets/i18n/')
        }



        class MyErrorHandler implements ErrorHandler {
        handleError(error) {
            console.log("error in app.module.ts", error);
        }
        }


        @NgModule({
        declarations: [AppComponent],
        entryComponents: [],
        imports: [ 
            BrowserModule,
            IonicModule.forRoot(),
            AppRoutingModule,
            HttpClientModule,
            TranslateModule.forRoot({
                loader: {
                    provide: TranslateLoader,
                    useFactory: HttpLoaderFactory,
                    deps: [HttpClient]
                }
            }),
            AngularFireModule.initializeApp({
            }),
            AngularFireDatabaseModule,
            // Put your custom imports below this line to make merges in Git easier   
            FormsModule,
            ReactiveFormsModule,
            ],   
        providers: [
                {provide: ErrorHandler, useClass: MyErrorHandler}, // had to add a custom error handler class here as IonicErrorHandler deprecated - 
                { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
        ],
        bootstrap: [AppComponent]
        })
        export class AppModule {}

// файл основного маршрута ленивая загрузка страницы входа, которую не удается найти

        import { NgModule } from '@angular/core';
        import { PreloadAllModules, RouterModule, Routes } from '@angular/router';

        const routes: Routes = [
        { path: '', redirectTo: 'home', pathMatch: 'full' },
        { path: 'login', loadChildren: './pages/auth/login/login.module#LoginPageModule' },
        { path: 'home', loadChildren: './pages/home/home.module#HomePageModule' },
        ];

        @NgModule({
        imports: [
            RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
        ],
        exports: [RouterModule]
        })
        export class AppRoutingModule { }

// вход в систему lazyloaded модуль, который не может быть найден

        import { NgModule } from '@angular/core';
        import { CommonModule } from '@angular/common';
        import { FormsModule, ReactiveFormsModule } from '@angular/forms';
        import { Routes, RouterModule } from '@angular/router';
        import { TranslateModule} from "@ngx-translate/core"
        import { IonicModule } from '@ionic/angular';

        import { LoginPage } from './login.page';

        const routes: Routes = [
        {
            path: '',
            component: LoginPage
        }
        ];

        @NgModule({
        imports: [
            CommonModule,
            FormsModule,
            IonicModule,
            ReactiveFormsModule,    
            TranslateModule,
            RouterModule.forChild(routes)
        ],
        declarations: [LoginPage]
        })
        export class LoginPageModule {}

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Перезапустите свой CLI.

запустите ionic serve (я использую ionic serve большую часть времени, другие, кажется, используют ng serve).

Я заметил, что CLI нуждаетсявремя от времени перезапуска, особенно при внесении изменений в файл app.module.

Я только что заново создал ваше сообщение об ошибке, удалив import { AppRoutingModule } from './app-routing.module';, а затем перекомпилировав CLI (в этот момент я получил ERROR Error: StaticInjectorError(AppModule)[IonRouterOutlet -> Router]:).

Когда я снова импортировал AppRoutingModule и просто дал компилировать CLI ( без перезапуска ), я отправляю точно такое же сообщение, которое вы получили;перезапустил его, и мой проект загрузился идеально.

Теперь, когда я получаю какую-то глупую ошибку, я перезапускаю CLI, прежде чем поцарапать дыру в моей голове.

0 голосов
/ 29 апреля 2019

Вы должны проверить структуру папок вашего Angular и убедиться, что этот модуль имеет правильный путь, а затем попытаться перезагрузить сервер, когда у вашего ленивого пути есть правильный путь.

...