对这个话题,差不多两年前有一个简单的小调研:跨端桌面应用解决方案与开发
没想到过了这么久,这个话题几乎还是保持原封不动的结论!

Electron姿势

在这次着手准备之前,我把希望放到了Electron上,于是分别调研了electron-vueelectron-react

一顿脚手架把玩之后,除了后者看起来规范一些外,前者运行都报错issues。如果你是非常钟爱react + redux + ts组合的人,那入坑就对了。基本上你要的模板代码都有,包括prettier这种都是给你配置好了的,工程化结构很清晰。反观vue模板,electron版本竟然在2.0.18……wtf,这都2020年了,查了下那还是9012年3月份的版本,这一年Chrome都升级N次了,注意现在已经到81.x了…….

除了版本落后外,vue库更新算是比较慢了,最后一次提交是在4个月前。react版本是9天前,所以这也是为啥推荐入坑react版本的原因。当然,我比较头疼是不只是版本问题,Electron本身存在的重大缺陷之一的打包文件体积大似乎这段时间并没有啥改善…..

于是我又看了下它表兄弟:electrino,好家伙更新倒是在29天前,不过文档写的迷一样,几乎不知道怎么开始,有个issues比较有意思,之后随便翻了下google发现资料少的可怜,于是我也就准备弃坑了!

在这之后,我把目光放到了:react-native

React-Native大法

如我之前调研的结果一样,这么长时间以来这个方向几乎还是那几个库,其中react-native-macos也已经半年没有过提交记录了,我试着运行了下脚手架,但初始化都失败了,见issues。然后releases列表里头最近的tag是支持到RN44,拜托现在官方已经62.2了,看来作者差不多也是弃坑跑路了….

不过windows下的react-native-windows在微软强有力的支持下,更新倒是挺频繁,我也相信应该是目前React-Native大法最佳的桌面端实现,不过我用的是macOS,就没再去尝试demo…..有windows条件和需求的可以看看,人家确实挺用心在搞:getting-started

一个小插曲,我发现RN-Win官方说支持Mac,结果文章下头却是:Coming soon!。翻到ms-rn后,我又发现一个MR

看上去,微软这个库支持Mac啦,我带着惊喜的心情做了如下尝试,结果发生了这些事情:issues

最终,通过各种猜测尝试,微软的这个库在macOS下终于跑起来了(顺便还在本地搭起了npm私服,虽然只有一个package……)

私服的小插曲

在用Verdaccioms-rn搭私服的过程中,还遇到个问题,就是当我直接把微软的代码pull到本地publish到私服去用时,cli竟然是拉的0.60.0-microsoft.67版本,就算指定了最新的latest,react-native init AwesomeApp也是执行失败,后来意识到私服上没有这个版本,于是切到tag里疯狂的publish了一顿,最终初始化成功

工程相关

Letsnote

结果还是比较理想的,简单的开发体验非常友好,另外Electron体积大的问题,RN方案算是质的飞跃,即使demo也要12.8 MB

资料