我目前在Electron中有一个角度应用程序。 (它是由其他人构建的)我想在浏览器中运行它(可能将其转换为Progressive Web App)。这可能吗?如果可以,怎么办?
答案 0 :(得分:2)
我根据自己的相似经历做了一些简短的总结。就我而言,这是可能的,但这可能并不总是正确的。希望这会有所帮助。
查找并评估应用程序对Electron api的依赖性-尝试在Angular,ngxElectron或其他Angular Electron API封装中搜索require('electron')或更可能,修复或更改应用程序,使其不再依赖于Electron
搜索Electron API关键字和用法,并决定如何处理它们。应用程序可能使用电子的示例-电子菜单,剪贴板,BrowserView或更多幕后应用程序可能使用IPC。
该应用程序可能引用Node api,因为Node相对易于在Electron中混入您的应用程序,这将是一个需要修复的问题。搜索Node api引用。
某些应用在Electron之外具有本机依赖性,您需要找到任何此类API并决定如何处理它们。
工作量(即使有可能)也取决于应用程序本身提供的功能以及所需的本机功能的程度,对Electron功能的依赖程度,对Node的依赖程度。
例如,在Electron中,开发人员比以往拥有对浏览器的更多控制权,并且可以选择关闭常规的Web安全功能。当您将应用程序移动到浏览器时,可能会出现跨站点脚本(CORS等)或其他安全问题。看一下创建BrowserWindows时传递的选项。如果应用具有异国情调的设置,则可能需要更改架构。
您需要确定应用程序在移植后是否仍需要在Electron中工作(这可能是可行的,但可能会使事情变得复杂)
如果该应用仍应在Electron中运行,则需要确定一种策略来处理该问题(例如,如果语句检查了Electron或其他策略)。