您如何评价Electron?
我原本对Electron非常看好,但是最近使用了Electron的最新版本,发现了一些以前没有见过的bug。微软旗下的Teams也计划用WebView2取代Electron,但我个人感觉Electron可能会开始衰落。
架构太复杂
Electron的系统设计相对复杂,并且当前版本具有很强的安全分离性,需要两个Node.js运行时用于渲染(前端)和主进程(后端)。和两个Chrome 运行时。
虽然这样的架构会非常复杂,
2.太大
目前的Electron应用程序,一个空应用程序,基本上是200Mb,如果包括一些节点模块,大小基本上超过500Mb。这基本上限制了扩展到移动APP的可能性,只能作为桌面APP使用。
3、工程质量恶化
我感觉已经有很多bug无法解决了,因为架构太复杂了,我必须使用变通办法来解决它们。例如,版本19 需要添加一些失效功能。否则,程序很容易崩溃。 app.commandLine.appendSwitch('无沙箱')
app.commandLine.appendSwitch('禁用GPU')
app.commandLine.appendSwitch('禁用软件光栅化器')
app.commandLine.appendSwitch('禁用GPU 合成')
app.commandLine.appendSwitch('禁用GPU 光栅化')
app.commandLine.appendSwitch('disable-gpu-sandbox')
app.commandLine.appendSwitch('--no-sandbox')
app.disableHardwareAcceleration()
4. 安全性
渲染过程现在有一个完整的Node.js 运行时,直接处理用户输入,出于安全考虑与后端Node.js 运行时分离,并且许多以前的API 无法调整。不过,我个人觉得在渲染层实现node.js是没有意义的,而且会带来巨大的安全风险。我们建议删除此运行时并在后端实现所有内容。前端通过Web技术与后端进行通信。它可以显着降低复杂性。外表
从以上几点来看,我个人觉得Tauri是一个比较有前途的项目,但是由于后端是用Rust编写的,所以需要在前后端之间切换语言,而且开发效率比js/要低。 ts。
我希望将来有一个简单的Electron 解决方案,可以简化项目复杂性并分离每个子项目,从而无需集成多个已经非常复杂的项目。前端和后端的通信完全可以由应用程序本身通过(http/socket)来实现。这样架构就不需要与前端运行时进行访问或合并。 Node.js 端只需要实现菜单、通知、消息、任务栏等少数系统界面模块。这是一个简单的图表:
不过它确实也有一些缺点,比如不够原生,界面类似网页,需要单独处理右键菜单、快捷键F5等,基本上就是一个前端。
以下是4位网友对此的看法
网络用户1:如果有一个WebView+Node.js的系统项目就好了,但似乎没人愿意做。也许是因为Electron 的大尺寸并不是一个明显的缺点。
网友2:如果没有内置WebView,是不是老系统Windows上的Webview2任何版本都没有,会头疼几天。我认为这个尺寸没有什么帮助。
网友3:你的建议很好。确实,电子被设计得太大了。我本来打算这样做,但这需要更多的精力。
网友4:什么啊,保险起见,其实有两个运行时,一个是前端的,一个是前端的[笑出泪][笑出泪][笑出泪]这很有趣,你还可以用这个。 蚊子?
#好用的开源软件# #DevHub# #选择开源项目# #API版本# #wcoop# #dumprq# #oraEnd# #软件开发方法论# #分享你的编程经验# #你不想写的代码敲
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。