Возможно ли преобразовать приложение Svelte / Sapper в Cordova - PullRequest
0 голосов
/ 24 октября 2019

У нас есть приложение PWA, написанное на Svelte / Sapper, и нам нравится конвертировать это приложение на мобильные платформы. Из-за некоторых бизнес-причин нам нужно явно приложение в магазине Android и iOS.

  • На Android ситуация проста. Мы будем использовать Google TWA, и все будет отлично.
  • На Apple iOS это довольно сложно. Google TWA для iOS не существует. А также тонна требований Apple store будет довольно болезненной.

Небольшое примечание: нам не нужны какие-либо нативные API на мобильных платформах. Нам достаточно API браузера JavaScript.

Итак, я нашел проект Apache Cordova, который, как мне кажется, является лучшим для нашей проблемы, и нашел шаблон для Svelte syonip/svelte-cordova-template. Но этого недостаточно. Шаблон решает Svelte, но не Sapper.

В лучшем случае я загружаю некоторый шаблон Cordova / Svelte / Sapper, копирую существующий исходный код, исправляю некоторые проблемы по пути, экспортирую приложение в проект xCode, собираю егои он будет работать на iOS без каких-либо серьезных проблем (но, конечно, я ожидаю некоторые изменения кода, но не полное переписывание приложения).

Возможно, у вас есть некоторый опыт работы с Svelte / Sapper ->Миграция Cordova?

Edit1 : Я думаю, что можно будет использовать функцию Sapper export и передавать собранные файлы в Cordova. У него будут некоторые проблемы, такие как неработающая маршрутизация, когда пользователь вручную меняет URL-адрес (но для этого конкретного варианта использования - мобильного приложения - это не проблема, поскольку пользователь не сможет редактировать URL-адрес). Рендеринг, предварительная загрузка и предварительная загрузка на стороне сервера также не обсуждаются.

Edit2 : После некоторых копаний я думаю, что невозможно конвертировать приложение Sapper в Cordova. В Sapper много проблем с разбиением кода. Самые большие проблемы возникают с политиками CORS и тем, что приложение Sapper предназначено для работы с сервером и доменом, а не с файловой системой. Возможно, можно было бы использовать какой-то скрытый сервер localhost в Cordova для обслуживания файлов, но это было бы проблематично и очень неприятно.

...