NativeScript и общий доступ к коду + ленивый путь к модулю - PullRequest
1 голос
/ 26 мая 2019

У меня есть приложение NativeScript / Angular, которое использует совместное использование кода.

Чтобы сделать мой проект более организованным, я создал базовую папку с подпапкой для маршрутизации:

enter image description here

Маршруты определены в 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 запустится, но веб-приложение не сможет найти модуль.

Если я оставлю средство просмотра файлов запущенным для сборки Android и вернусь к пути ../products/products.module#ProductsModule, то и Android, и веб-интерфейс будут работать нормально.

Я не хочу перемещать мои файлы маршрутизации обратно в папку src. Я также неохотно включаю любые хаки, такие как искажение строки пути на платформе.

Если у вас есть какие-либо объяснения относительно того, почему это происходит, и / или надежное исправление, которое не является «хакерским», я был бы рад услышать это.

1 Ответ

1 голос
/ 26 мая 2019

Проблема возникла из-за некоторых странностей, связанных с наблюдателями за файлами.Когда я изменяю путь к следующему, обе платформы работают нормально:

../../products/products.module#ProductsModule

Причина, по которой я не выбрал этот путь с самого начала, заключается в том, что я использовал ~/app/products/products.module#ProductsModule для началас и отредактировал это, чтобы заставить веб-сборку работать, пока наблюдатель файла Android все еще работал.

Когда средства просмотра Android и веб-обозревателя отключены, а путь к указанному выше указан, они оба работают.

...