被迫写了个 Electron 模板

233 天前
 mioktiar56

先吐槽一下吧: 我本来是做 C++客户端开发的,公司之前一直是用的 Qt/Duilib+CEF 的模式开发客户端,一直平安无事,可能过于无事了吧,最近的一个产品想着用一些现在热门的 Electron ,一方面和前沿技术对接,另一方面也可以让前端来分担一部分客户端的开发工作,比如本地配置、文件下载这些。

但实际开发中才发现公司的前端开发对客户端和系统方面的知识实在是太匮乏了,比如不知道什么是任务栏和系统托盘、文件路径和目录也分不清,主进程各种 js 异常满天飞,客户端咔咔崩溃......Electron 和 vue 结合也是一堆的坑。但既然已经选择了这个方案,也不能中途换方案,没办法,我只能硬着头皮学 Electron 和 vue 了,让前端专注写 Vue 页面部分,我写 Node.js 和 Electron 部分,项目总算坎坷的上线了,寄希望于后面慢慢重构吧。

基于上面的教训,在项目开发完之后,我写了个 Electron 模板,争取后面的项目直接基于这个模板能够让前端平稳的参与进来,尽量抹平 web 开发和客户端开发之间的差异吧。

大家可以看看我的模板,多提意见,谢谢

https://github.com/winsoft666/electron-vue3-boilerplate

3136 次点击
所在节点    程序员
30 条回复
wangtian2020
233 天前
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
webSecurity: false,
}
ipc 通信脱裤子放屁,直接在渲染进程写 node 代码
dx123
233 天前
emmm ,虽然不懂,但还是想问,为啥产品能决定技术栈····或者说产品关心技术栈实现
mioktiar56
233 天前
@wangtian2020 只能说你是懂一点的,但懂的不多
irisShaw
233 天前
最怕这种懂一点,懂得不多的,但能拍板做决定的人。。。
Orangeee
233 天前
@dx123 估计是技术栈实现可以影响参与人数和交付时间,产品:“你用 Electron 不就前端也能一起开发了吗,可以提前 2 周上线了吧”
DesnLee
233 天前
我是用 vite react electron

这玩意包是真大,有点烦
zjsxwc
233 天前
不喜欢 ts ,喜欢 js
不喜欢 vue 虚拟 dom ,喜欢 svelte 原生 dom
ljsh093
233 天前
@wangtian2020 #1 哥,这么搞页面不卡吗
ljsh093
233 天前
感谢分享,我直接一个 fork
afxcn
233 天前
用什么技术不是关键,人才是关键。

精通 Electron 的人,用 Electron 会很爽;如果不熟悉 Electron 非要用,那就爽不了。
wjx0912
233 天前
支持 ts 。现在团队用的 jsdoc 非常痛苦。撸外快用的 ts 就省事多了。
通信的话,要么不封装,要么更进一步?( service ,controller )
要是想做个开箱即用的,可以考虑加入 pinia, elementplus, i18n 啥的?
BlackHole1
233 天前
已 Star 。支持 NSIS 很 Nice ,有兴趣给 Electron Forge 提交支持 NSIS 的 feat PR 么?
asdhak
233 天前
someios
233 天前
我们甲方不让用 nodeIntegration: true ,网络请求都放在 nodejs 来处理的
wangtian2020
233 天前
@ljsh093 我用的全是 promise 的接口一个同步 nodejs api 的都不用 ,为什么会觉得卡。觉得卡就是写代码的人技术水平不行
ljsh093
233 天前
@wangtian2020 #15 除非起 worker 不然都是单线程,会影响渲染性能
wangtian2020
233 天前
@ljsh093 JavaScript 单线程异步的含义就是有回调就干活,没活就该渲染渲染。不会影响性能,只有用同步的 nodejs api 才会卡住
我只用```import fs from 'fs'
fs.promises.下的异步 API```凭什么卡。
不懂不会写别瞎说
duan602728596
233 天前
我也是直接在渲染进程写 node 代码。
node require 在渲染进程会影响 page 的初始化,我靠自己写的 babel 插件来解决的这个问题。
Jirajine
233 天前
直接 nodeintegration 没毛病,想想用 electron 是为了什么。
NormanGhost
233 天前
我们公司也是 electron 技术栈,来公司一年后我一个前端也能用 c++写 node addon 集成算法同事的静态,动态库了。写 electron 最起码要有 node 基础,懂后端 客户端基础知识的。不能只懂前端

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1027702

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX