写同时支持Electron和Web的应用需要注意什么?

:thinking:
希望尽可能减少重复代码的出现
有没有合适的参考案例或者成熟的解决方案呢?

2 个赞
2 个赞

这个似乎是不同的编译目标分成了不同的分支,我更偏向在一个分支里实现的方式

1 个赞

https://www.reddit.com/r/electronjs/comments/g42ynu/how_do_you_setup_your_repos_for_a_webapp
写个中间层?

好像有个相关概念hybrid Electron app
没找到框架,但github上有很多相关的早期仓库

2 个赞

hybrid 这个词很关键,感谢

创建一个平台适配层 ,对外提供统一的接口,内部判断一下,根据运行环境调用不同的平台实现。最核心的还是要将应用程序的通用逻辑 、组件样式等与平台相关的代码分离。最后再用webpack弄一下条件加载什么的,就ok了。
大概就是这样的实现方法,因为不同环境下的api就是有不一样,所以我对你说的尽可能减少重复代码给你的建议就是组件样式和一些通用的逻辑拆分的好一点

1 个赞

哦对了,我在这里说的就是楼上佬讨论的hybrid Electron app的核心思路,可以参考一下

1 个赞

感谢提供编码细节的建议!

遇事不决加一个抽象层 确实是一个万能的解决办法 :smiling_face_with_three_hearts:

1 个赞

2个进程都封装一个isDesktop的方法,渲染进程但凡有需要和主进程通信的地方,都给包上一层

1 个赞

调用特定平台方法包一层就行,抽象一下electron的方法应该不多

1 个赞