Ионная ошибка отложенной загрузки
При попытке настроить отложенную загрузку я сталкиваюсь со следующей ошибкой стековой трассировки:
Error: Uncaught (in promise): Error: Cannot find module 'pages/home/home.module'.
Error: Cannot find module 'pages/home/home.module'.
at http://localhost:8100/build/main.js:10:9
at t.invoke (http://localhost:8100/build/polyfills.js:3:14976)
at Object.onInvoke (http://localhost:8100/build/vendor.js:5134:33)
at t.invoke (http://localhost:8100/build/polyfills.js:3:14916)
at r.run (http://localhost:8100/build/polyfills.js:3:10143)
at http://localhost:8100/build/polyfills.js:3:20242
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660)
at Object.onInvokeTask (http://localhost:8100/build/vendor.js:5125:33)
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581)
at r.runTask (http://localhost:8100/build/polyfills.js:3:10834)
at c (http://localhost:8100/build/polyfills.js:3:19752)
at c (http://localhost:8100/build/polyfills.js:3:19461)
at http://localhost:8100/build/polyfills.js:3:20233
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660)
at Object.onInvokeTask (http://localhost:8100/build/vendor.js:5125:33)
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581)
at r.runTask (http://localhost:8100/build/polyfills.js:3:10834)
at o (http://localhost:8100/build/polyfills.js:3:7894)
Конфигурация
Ionic Framework: 3.9.2
Ionic App Scripts: 3.2.1
Angular Core: 5.2.11
Angular Compiler CLI: 5.2.11
Node: 10.12.0
OS Platform: macOS
Navigator Platform: MacIntel
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Фрагменты кода
Вот некоторые из файлов:
app-routing.module.ts
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{ path: 'home', loadChildren: "pages/home/home.module#HomePageModule" },
{ path: 'form', loadChildren: "pages/form/form.module#FormPageModule" },
{ path: '', redirectTo: '/home', pathMatch: 'full' }
];
@NgModule({
imports: [ RouterModule.forRoot(routes, {
enableTracing: true
}) ],
exports: [ RouterModule ]
})
export class AppRoutingModule { }
Я пробовал вариантызначения для loadChildren
, такие как:
pages/home/home.module#HomePageModule
./home/home.module#HomePageModule
../pages/home/home.module#HomePageModule
Примечания
- На моем
app/app.module.ts
я уже не импортирую модули с отложенной загрузкой. - На моем
app/app.component.ts
я использую строковую ссылку на мой HomePage
модуль. - На моем
app/app-routing.module.ts
, Маршруты используют loadChildren
, который ссылается на путь к файлу моих модулей. - Модуль приложения использует
RouterModule.forRoot
, тогда как функциональные модули в папке pages
используют RouterModule.forChild
.
Не уверен, что еще здесь делать, я следовал инструкциям по отложенной загрузке для ионной документации и читал документацию Angular для отложенной загрузки.
Вопросы
Как исправить ошибку «не удается найти модуль»?Я знаю, что файлы есть, но Ionic / Angular не может найти, где находятся файлы модуля.
Нужно ли мне иметь внешние зависимости, такие как angular-router-загрузчик , чтобы включить angular для загрузки модулей из строковых ссылок на файлы?
Github Repository
Чтобы воспроизвести ошибку, пожалуйста, проверьте репозиторий ниже:
https://github.com/darrensapalo/ionic-lazy-loading-error