我有一个使用代码共享的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
在浏览器中提供此服务很好。
使用tns run android --bundle
将其捆绑到Android上无法运行,因为找不到模块。
如果我将路径更改为~/app/products/products.module#ProductsModule
,则Android应用程序将运行,但是Web应用程序找不到该模块。
如果我随后让文件查看器运行以运行Android构建并将路径更改回../products/products.module#ProductsModule
,则Android和Web都可以正常工作。
我不想将路由文件移回src
文件夹。我也不愿意包含任何黑客手段,例如平台驱动的路径字符串修改。
如果您对发生这种情况的原因和/或不是“ hacky”的可靠修复有任何解释,我很想听听。
答案 0 :(得分:1)
问题源于有关文件监视程序的一些古怪之处。当我将路径更改为以下内容时,两个平台都可以正常工作:
../../products/products.module#ProductsModule
我一开始没有选择此路径的原因是因为我使用~/app/products/products.module#ProductsModule
并对其进行了编辑,以使Web构建在Android File Watcher仍在运行时正常工作。
Android和Web文件监视程序都终止,并且路径调整为上面提供的路径后,它们都可以工作。