我有一个使用代码共享的 NativeScript/Angular 应用程序。
为了使我的项目更有条理,我创建了一个核心文件夹,其中包含一个用于路由的子文件夹:
路线定义在app.common.ts
:
export const appRoutes: Routes = [
{ path: '', redirectTo: '/products', pathMatch: 'full' },
{
path: 'products',
loadChildren: '../products/products.module#ProductsModule'
}
]
特别感兴趣的是以下属性中显示的模块路径:
loadChildren: '../products/products.module#ProductsModule'
在浏览器中使用它ng serve -o
可以正常工作。
捆绑它以在 Android 上运行tns run android --bundle
是行不通的,因为它找不到模块。
如果我将路径更改为~/app/products/products.module#ProductsModule
,Android 应用程序就会运行,但 Web 应用程序找不到该模块。
如果我让文件观察程序为 Android 构建运行并将路径更改回../products/products.module#ProductsModule
,那么 Android 和 Web 都可以正常工作。
我不想将我的路由文件移回该src
文件夹。我也不愿意包含任何技巧,例如平台驱动的路径字符串修改。
如果您对为什么会发生这种情况有任何解释和/或没有“hacky”的强大修复,我很想听听。