electron 有使用过这个的兄弟吗?实用不? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gaocc
V2EX    问与答

electron 有使用过这个的兄弟吗?实用不?

  •  1
     
  •   gaocc 2019-04-02 09:43:51 +08:00 11869 次点击
    这是一个创建于 2390 天前的主题,其中的信息可能已经有所发展或是发生改变。

    c#客户端要支持期货和永续期货的模块,出了三个方案:

    一、客户端自个儿完成,但效果不太好,web 还不能复用,mac 也不能用

    二、web 完成,客户端使用类似内部浏览器的工具来加载展示,但效果就是卡

    三、同事选型了 electron,看官方可以跨平台用,似乎比较合适,但都没使用过,有风险。

    求支持,兄弟们

    40 条回复    2019-04-03 10:10:01 +08:00
    gaocc
        1
    gaocc  
    OP
       2019-04-02 09:44:43 +08:00
    使用过的给个建议,感激不尽,先给个你个爱心
    morethansean
        2
    morethansean  
       2019-04-02 09:53:56 +08:00 via iPhone
    直接用 Electron 呗。
    ijse
        3
    ijse  
       2019-04-02 09:54:56 +08:00
    electron 方案不错的,只是打包体积有点大( 40+MB ),驾驭好了之后,三个平台都能一套代码搞定; Web 代码一定要打包到本地加载,只要用户电脑不是很差,优化做得到位,使用起来体验跟 Native 的客户端无异的;一些密集运算也可以写 c++ addon 编译解决; electron-build 工具更是可以直接提供软件升级功能,是不错的方案。

    使用内部浏览器,页面可能会有些兼容问题,但如果客户端用 cef 会好些,只是打包体积也会很大,并且页面与端交互可能也会有问题。

    当然,最主要的还是要看团队
    gaocc
        4
    gaocc  
    OP
       2019-04-02 09:58:18 +08:00
    @ijse 嗯感谢,既然方案还可以,就继续执行了,目前还在搞 demo 学习中,哈。
    grewer
        5
    grewer  
       2019-04-02 10:02:30 +08:00
    之前我找的时候 没有好的解决方案
    还有我用的时候遇到了些小 bug
    zw1234
        6
    zw1234  
       2019-04-02 10:02:56 +08:00
    electron 基于 Chromium 的,和 chrome 一样占用内存比较高...
    murmur
        7
    murmur  
       2019-04-02 10:08:26 +08:00
    目前看正经的 electron app,叫的出名优化的好的只有 vscode
    奇遇的都是 cef 的爆改,拖家带口不知道带了几百个 dll
    zzh1224
        8
    zzh1224  
       2019-04-02 10:10:13 +08:00
    应该挺成熟了吧,反正我用的时候也没啥大坑要踩,就是打包出来挺大的,就一普通的单页面应用
    ZeoKarl
        9
    ZeoKarl  
       2019-04-02 10:12:48 +08:00 via iPhone
    反正 sharp 这个库我编译 Windows 版本就没成功过,electron 里面用的
    vampuke
        10
    vampuke  
       2019-04-02 10:17:43 +08:00
    @murmur 斗鱼客户端 QQ 音乐和网易云音乐的 MacOS 版本 postman 好像都是 electron
    murmur
        11
    murmur  
       2019-04-02 10:19:23 +08:00
    @vampuke 光看 electron 没用 你要数一下除了 electron 之外还有多少 dll 才能判断 electron 是核心还就是 UI
    尤其是微信这种带了个 40m 的 qbcore.dll 又是什么爆改版
    caryqy
        12
    caryqy  
       2019-04-02 10:20:46 +08:00
    虾米音乐 mac 端就是的 beggar vip 事件
    gaocc
        13
    gaocc  
    OP
       2019-04-02 10:23:22 +08:00
    目前有点懵,我这前端用的 vue,electron 应该 只是用于 UI,像套壳一样,具体怎么结合或者必须得单独用,都还没踩过坑。有谁和 vue 一起用过的吗?
    @murmur
    @vampuke
    @zw1234
    murmur
        14
    murmur  
       2019-04-02 10:25:20 +08:00
    @gaocc

    问题其实就 2 个
    1、太大,相比,net 把锅都给了运行库,electron 打包出来的东西都得三四十 m,包括和 chrome 一样吃内存,另外一个可能是问题也不是问题的就是 electron 不支持 xp,但是 node-webkit 的老版本是支持的
    2、代码几乎跟没混淆一样

    至于界面、逻辑都不是问题
    vampuke
        15
    vampuke  
       2019-04-02 10:29:21 +08:00
    @murmur 受教了 刚刚看了一下 postman 的文件 感觉应该是 electron 为主
    linchengzzz
        16
    linchengzzz  
       2019-04-02 10:32:18 +08:00
    主要是吃内存 , 电脑配置好 应该没问题
    932357832
        17
    932357832  
       2019-04-02 10:32:23 +08:00
    和 vue 一起用的话,可以用这个 electron-vue -> https://simulatedgreg.gitbooks.io/electron-vue/content/cn/ ,搭配 electron 官方文档使用就可以了
    但是这个已经有段时间没有更新了,里面的 electron 版本也不是最新的,最好自己更新到新版本。
    vampuke
        18
    vampuke  
       2019-04-02 10:33:15 +08:00
    @gaocc 我的理解是 electron 在打包的过程中就像打包了一个 chromium 的内核进你的软件,替你解决兼容问题,vue 的代码就正常写,写完再用 electron 打包,运行的效果和你直接在浏览器里打开 vue 项目是没有太大区别的,至于#14 说的混淆的问题,我的做法是混淆完再打包,这样 electron 解包出来的也只是混淆后的内容
    zqx
        19
    zqx  
       2019-04-02 10:34:06 +08:00 via Android
    直接体验一下 vs code 看看好不好用就行了
    meishigan321
        20
    meishigan321  
       2019-04-02 10:36:37 +08:00 via Android
    期待出个安卓版!安卓版的 ssr 都 n 年不更新了。
    AV1
        21
    AV1  
       2019-04-02 10:42:29 +08:00 via Android
    就是打包体积、运行内存大,其余都不是太大的问题。如果有 web 开发经验,差不多可以无缝切换过来。
    要注意发布代码要混淆,免得把注释里见不得人的信息被好事者拿去搞新闻
    gaocc
        22
    gaocc  
    OP
       2019-04-02 10:44:55 +08:00
    @vampuke
    @932357832
    @murmur
    感谢哇,我先自己搂一把文档,自己没编码过没底,目前判断就是能行,有坑,但能填。ok
    jswh
        23
    jswh  
       2019-04-02 10:46:08 +08:00
    打包比较大,其他都挺好的
    Mzs
        24
    Mzs  
       2019-04-02 10:49:11 +08:00
    阿里云的 OSS 客户端就是 electron 写的
    我公司内部的一个工具也用 electron 写的 主要是做一些 http 请求和 adb 命令 蛮好的
    pengwen
        25
    pengwen  
       2019-04-02 10:56:55 +08:00 via Android
    @ijse 为什么我随便打包一下都是 90+的,第一次使用
    murmur
        26
    murmur  
       2019-04-02 10:59:31 +08:00
    @pengwen 我用过比较老的 node-webkit,打包可以控制在 30m 以内
    aleko
        27
    aleko  
       2019-04-02 11:21:02 +08:00
    还好 没什么特别大的坑 小坑一般都是自己用的姿势不正确 但如果你想要魔改就不确定了...
    gaocc
        28
    gaocc  
    OP
       2019-04-02 13:43:15 +08:00
    @932357832 感谢,这个直接全家桶的好操作很多。
    encro
        29
    encro  
       2019-04-02 13:52:16 +08:00
    web 使用卡,
    electron 是也是 web 的,难道就不卡了?
    encro
        30
    encro  
       2019-04-02 13:55:04 +08:00
    首先需要明白是为什么卡?
    比如是通信延迟,还是渲染 dom 太多。
    electron 只是在 web 上加了一个壳,并不一定能解决卡的问题。
    TomVista
        31
    TomVista  
       2019-04-02 14:08:06 +08:00
    很不错的技术生态,就是 electron+hello word =40m 有点尴尬
    joesonw
        32
    joesonw  
       2019-04-02 17:43:40 +08:00
    electron 唯一的问题就是不支持 xp. 支持 xp 的话老老实实用 nw.js
    ijse
        33
    ijse  
       2019-04-02 18:03:23 +08:00
    @pengwen 你该不会是把 node_modules 也打到包里了吧?
    可以试下解压 asar 文件看下
    hws8033856
        34
    hws8033856  
       2019-04-02 18:20:01 +08:00
    @encro 同意,LZ 还是先弄清楚为什么卡,例如我以前的一个项目,用的 WPF 外框+cefsharp 插件的 WPF 版,网页动画效果因为 WPF 的 UI 渲染机制导致看起来不流畅,结果换用 cefsharp 的 winform 版就解决问题了
    gaocc
        35
    gaocc  
    OP
       2019-04-02 18:31:03 +08:00
    demo 了一个智能行情监控的界面,遇到了 websocket 连接不上的坑,具体报错如下:

    Uncaught Error: [Vuex Electron] Please, don't use direct commit's, use dispatch instead of this.
    at Store.store.commit (D:\work\GS_project\gsboms\trunk\code\client\electron-vue\electron-gs\node_modules\vuex-electron\dist\shared-mutations.js:1:1992)
    at _class.passToStore (webpack-internal:///./src/renderer/plugins/ws/observer.js:148:62)
    at WebSocket._this2.webSocket.(anonymous function) (webpack-internal:///./src/renderer/plugins/ws/observer.js:94:20)

    有踩过的吗,百度没找到什么有效资料。

    @hws8033856
    @TomVista
    @Mzs
    @vampuke
    @932357832
    gaocc
        36
    gaocc  
    OP
       2019-04-02 18:31:53 +08:00
    代码逻辑和 web 的一样,浏览器没毛病正常运行
    TomVista
        37
    TomVista  
       2019-04-02 20:03:57 +08:00
    @gaocc 检查下路径, websocket 访问了 vuex store 吗?看起来问题不在 websocket
    gaocc
        38
    gaocc  
    OP
       2019-04-02 20:25:54 +08:00
    这个刚踩掉了。注释掉了 store 目录下 index.js 的 createSharedMutations 插件。先能连接 websocket 了,数据也有了,但是 F5 刷新没重连,有点蛋疼,控制台报错:
    [26292:0402/202200.999:ERROR:CONSOLE(7574)] "Extension server error: Operation failed: : has no execution context", source: chrome-devtools://devtools/bundled/inspector.js (7574)
    这玩意,看了一脸懵逼。明个再来,今天休息了。
    @TomVista
    pengwen
        39
    pengwen  
       2019-04-02 21:45:42 +08:00 via Android
    @ijse 刚刚接触 electron,我是直接执行 electron-packager .
    请问下,有什么技巧可以降低包的大小呢
    TsaiKoga
        40
    TsaiKoga  
       2019-04-03 10:10:01 +08:00
    我前阵子也玩了 electron,可以参考我这个项目 https://github.com/TsaiKoga/it-tools
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6344 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:10 PVG 10:10 LAX 19:10 JFK 22:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86