Мне нужно предоставить разные интерфейсы для небольших устройств «мобильных» и больших устройств «настольных» в Ionic 4 (на основе Angular 7). Однако кажется, что процесс компиляции / упаковки Ionic пропускает некоторые модули.
Я пытаюсь настроить различные маршруты при запуске на основе функции isMobile ().
// import { LoginPageModule as DesktopLogin } from './desktop/login/login.module';
// routes for desktop
const DESKTOP_ROUTES: Routes = [
{
path: 'login',
loadChildren: './desktop/login/login.module#LoginPageModule',
}
];
// routes for mobile
const MOBILE_ROUTES: Routes = [
{
path: 'login',
loadChildren: './mobile/login/login.module#LoginPageModule',
}
];
// switch between routes depending on where we are
const USED_ROUTES = isMobile() ? MOBILE_ROUTES : DESKTOP_ROUTES;
@NgModule({
imports: [
// use the routes
RouterModule.forRoot(USED_ROUTES, { preloadingStrategy: PreloadAllModules,
enableTracing: false })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
Приведенный выше код работает в режиме «рабочего стола», но для «мобильного» режима производит
«Ошибка: не удается найти модуль» ./mobile/login/login.module'"
Я могу временно это исправить:
ионная подача
Подождите, чтобы увидеть ошибку
Удалить комментарий перед импортом в модуль мобильного входа вверху
См. Ionic compile для модуля мобильного входа в систему
Теперь это работает, пока я не перезапущу ионную подачу
Кажется, я заставляю компилятор пропустить модуль
Можно ли это как-то исправить? Все, что мне нужно, это переключение между двумя различными наборами маршрутов на основе переменной среды.