是否可以将Svelte / Sapper应用程序转换为Cordova

时间:2019-10-24 08:28:08

标签: ios cordova svelte sapper

我们有用Svelte / Sapper编写的PWA应用程序,我们希望在移动平台上转换此应用程序。由于某些商业原因,我们需要在Android和iOS商店中明确使用该应用程序。

  • 在Android上情况很简单。我们将使用Google TWA,一切都会很好。
  • 在Apple iOS上,我觉得很难。没有适用于iOS的Google TWA。而且,苹果商店的大量需求也将是一个很大的痛苦。

小注释:在移动平台上,我们不需要任何本机API。纯粹的JavaScript浏览器API对我们来说足够了。

因此,我找到了我认为最适合我们问题的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应用旨在与服务器和域(而不是文件系统)一起使用的事实上。也许可以在Cordova中使用一些隐藏的localhost服务器来提供文件,但这是有问题的并且非常讨厌。

1 个答案:

答案 0 :(得分:0)

您需要cordova应用程序中的节点才能运行节点(sapper)应用程序。

所以

    Cordova应用程序中的
  1. include节点: https://www.npmjs.com/package/nodejs-mobile-cordova

  2. 通过运行在应用程序开始节点中的
  3. nodejs.start

  4. 使用运行的脚本启动您的Sapper应用 npm start

  5. 打开浏览器索引路径的网页视图。

我没试过这个,只是预感:)