用 web 技术开发桌面应用果然不可取吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chunqiuyiyu
V2EX    Node.js

用 web 技术开发桌面应用果然不可取吗?

  •  
  •   chunqiuyiyu 2016-04-16 17:36:01 +08:00 23508 次点击
    这是一个创建于 3465 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,使用 electron 开发了一个小工具,打包后发现执行程序的体积高达 120M ,虽然明知道里面本来就包含 nodejs 与 webkit ,但是也太夸张了。

    43 条回复    2018-03-27 13:45:49 +08:00
    unique
        1
    unique  
       2016-04-16 17:41:05 +08:00
    以前用 nw 只放了个网页打包也要 70M+
    还是不搞了。。
    chunqiuyiyu
        2
    chunqiuyiyu  
    OP
       2016-04-16 17:42:42 +08:00
    @unique 确实,不过自己写个工具来提升效率还是可以的,就是不便于分享给其他人。
    wakiki
        3
    wakiki  
       2016-04-16 18:45:24 +08:00
    是把 devDependencies 也打包进去了吧
    mwylaoma
        4
    mwylaoma  
       2016-04-16 18:59:05 +08:00
    有什么办法解决吗?
    oott123
        5
    oott123  
       2016-04-16 18:59:37 +08:00 via Android
    _(:з」∠)_ 120M 有点大吧…感觉 100M 以内的程序还是可以接受的。
    vghdjgh
        6
    vghdjgh  
       2016-04-16 19:10:55 +08:00
    有一些小技巧的,
    比如,打包是移除掉运行时不需要的,例如 devDependencies ,通过`npm i --production`可以只安装 dependencies 包;
    还有发布时压缩成 zip 包,可以把大小减少到 40-60MB ,如果压缩成 7z 包,可以减少到 30MB 。
    wsph123
        7
    wsph123  
       2016-04-16 19:20:22 +08:00
    其实可以做到 30MB 的,可以参考我昨天发布的项目
    vanxining
        8
    vanxining  
       2016-04-16 19:35:02 +08:00
    超过 10M 都不能忍……
    loading
        9
    loading  
       2016-04-16 19:36:42 +08:00 via Android
    除非是 js 写大型应用都炉火纯青了,不然开发效率低,运行速度慢,体积大。
    g00001
        10
    g00001  
       2016-04-16 19:51:21 +08:00   4
    跨平台的东西体积都大用起来都麻烦,用 aardio 就没有这些问题了,打包个 webkit 内核就 3MB ,用 HTMLayout 就更小,不但可以 HTML+CSS 写界面,还可以用上类似 PHP 的模板语法,最重要的是界面流畅,速度快 《使用 webkit 内核开发桌面软件界面》 http://bbs.aardio.com/forum.php?mod=viewthread&tid=12574&from=portal
    jiongxiaobu
        11
    jiongxiaobu  
       2016-04-16 19:58:54 +08:00 via Android
    你需要 react native
    yann1992
        12
    yann1992  
       2016-04-16 20:18:43 +08:00
    可以尝试下 sciter
    murmur
        13
    murmur  
       2016-04-16 20:29:47 +08:00
    你要跟.net 和 c++作竞争么 微软可以让.net 和 vc 运行库成为标准 你还没发把 electron 给每个用户装一次吧
    yangtze
        14
    yangtze  
       2016-04-16 20:40:03 +08:00
    Linux:
    Atom - 74.6M
    Sublime Text 3 - 6.4M

    怪不得 Atom 打开这么慢
    qdwang
        15
    qdwang  
       2016-04-16 21:16:49 +08:00 via Android
    楼主 我用 nw 打包只有 20m 。。。。你到底打包了什么鸟东西
    isnowify
        16
    isnowify  
       2016-04-16 21:18:38 +08:00 via iPhone
    @yangtze Atom 把 Chrome 都搞进去了,怎么可能不大…
    kindjeff
        17
    kindjeff  
       2016-04-16 22:40:36 +08:00
    我的电脑上 NW.JS 蜜汁打不开……放弃了学习 。
    zsx
        18
    zsx  
       2016-04-16 22:52:11 +08:00
    除 node_modules 拷到一个新目录然后只安装非 dev 的 modules
    或者 webpack 后只复制 C++ Modules
    接着打个 zip / 7z
    dibage
        19
    dibage  
       2016-04-16 23:28:53 +08:00
    并不是不可取,并不是不可取,并不是不可取!
    重要的是你的应用质量怎样!如果只是一部分小功能,比如就一个爬取 V2EX RSS ,那真是不可取,可以考虑 chrome 扩展。

    楼主给你看个项目: https://github.com/antoor/antSword 也用的 Electron ,文件是有点大,但是只要功能好,还是会有使用者愿意下载使用的,就好像 atom 编辑器,不也一样很大,但是还是会有大量的使用者吗?
    主要,还是看应用做得怎样。做得好的话提供个在线更新功能,这点大小根本不算什么 :)
    XianZaiZhuCe
        20
    XianZaiZhuCe  
       2016-04-16 23:59:09 +08:00
    现在用的 teambition ,也是 electron 。 用了几天还行。倒是没关注多大。反正 appstore 点击下载就行了。就算 200M ,也是一分钟不到的事
    SourceMan
        21
    SourceMan  
       2016-04-17 00:04:07 +08:00 via iPhone
    你看看 QQ iOS 版 size 多少
    murmur
        22
    murmur  
       2016-04-17 00:04:56 +08:00
    @XianZaiZhuCe teambition 有网页版啊
    uxstone
        23
    uxstone  
       2016-04-17 00:59:24 +08:00 via Android
    starUML 也是 node 写的,应该是没处理好吧,
    XianZaiZhuCe
        24
    XianZaiZhuCe  
       2016-04-17 01:12:16 +08:00 via iPhone
    @murmur 你说切 tap 快,方便,还是放 dock 更好。工具型的,经常用的我都是下的软件。
    dphdjy
        25
    dphdjy  
       2016-04-17 07:32:20 +08:00 via Android
    小工具~自己用~咱都是用 c/py/js 什么写的~要界面上 java 写~反正自己用又不用好看 XD
    dphdjy
        26
    dphdjy  
       2016-04-17 07:36:49 +08:00 via Android
    @dphdjy 但是对外发布的,长相有要求,快速迭代的上 electron ,每次更新只有几百 kb~已经核心的东西用 c 写也有效率(还有我之前写的最后大伯包只有 30m 来着~你一定放了奇怪的东西
    peiran
        27
    peiran  
       2016-04-17 07:51:04 +08:00
    之前用 nw.js 做的办公系统 也就 20m 左右。。
    chunqiuyiyu
        28
    chunqiuyiyu  
    OP
       2016-04-17 09:40:11 +08:00
    @vghdjgh 我现在就是这样做的,压缩后的体积是 50M ,在可以接受的范围里了。
    chunqiuyiyu
        29
    chunqiuyiyu  
    OP
       2016-04-17 09:47:59 +08:00
    @dibage 是这个道理,现在的电脑的存储空间都白菜价了,动辄几百 G ,如果质量好的话确实不在乎软件的体积大小。但是就是觉得尽量可以小一些,更方便的通过网络分发给别人。
    chunqiuyiyu
        30
    chunqiuyiyu  
    OP
       2016-04-17 09:49:32 +08:00
    @dphdjy 我的心态也就是能用就好,界面什么的完全不是我要考虑的事情,反正自己也写不好。
    luin
        31
    luin  
       2016-04-17 09:58:49 +08:00
    我的项目 https://github.com/luin/medis 是用 Electron 写的,和 nw 差不多,空项目是 90 MB ,写完后是 100 MB ,其实代码本身没有占多少空间。用 zip 打包后就只有 30 MB 了,而且发布到 Mac App Store 后都是压缩过的,用户下载时只需要下载 30 MB 左右就可以了,影响其实并不大。其实主要的问题是启动速度太慢了, Atom 其实启动挺慢的,只不过开始时会显示一个黑色背景,感知不太出来。
    MaiCong
        32
    MaiCong  
       2016-04-17 13:15:17 +08:00 via iPhone
    NW.js 做应用体积太大了
    dphdjy
        33
    dphdjy  
       2016-04-17 13:33:11 +08:00 via Android
    如果哪天 Google 在 Chrome 内部集成(比 Chrome APP 权限更高)的库就好了~酱紫 Chrome 可以顺手安利,各种应用可以共用内核,多好~然后其他浏览器的份额瞬间没了~然而那是不可能的。。。
    narcotics
        34
    narcotics  
       2016-04-17 14:05:56 +08:00 via iPhone
    说的热火朝天,都无视 viscose,atom 等等了?
    Mireas
        35
    Mireas  
       2016-04-17 14:43:06 +08:00   1
    标题让我想起了 DeepinLinux 的桌面, HTML5 写的,卡成傻逼。。。
    dant
        36
    dant  
       2016-04-17 15:17:25 +08:00
    某下载管理器新版改用 Chromium Embedded Framework 做 UI ,瞬间好感全无。
    zonghua
        37
    zonghua  
       2016-04-17 15:28:06 +08:00
    Go 编写的 Ngrok 有显示页面才不到 1MB
    Khlieb
        38
    Khlieb  
       2016-04-17 20:52:18 +08:00 via Android
    我记得 Firefox Marketplace 上面一大堆
    onceyoung
        39
    onceyoung  
       2016-04-18 07:58:19 +08:00 via Android
    主要看需求
    yaolixing
        40
    yaolixing  
       2017-07-16 00:49:02 +08:00
    他山界面内嵌 Gecko 22.0 支持 js,c++互调,支持 flash,xul,html,css,js,支持 windows,linux,发行大小 13MB,开源收费框架
    agoodob
        41
    agoodob  
       2018-01-17 13:57:43 +08:00
    2018 了,我也是碰到这个问题,Electron 打包出来 124M,压缩之后压缩包包是 40M。。
    正在查怎么缩减大小,未压缩状态下 30-40M 可以接受。。压缩后 10M 可以接受。
    做的是一个翻译字幕文件的简单工具: https://github.com/1c7/translate-subtitle-file
    agoodob
        42
    agoodob  
       2018-01-17 13:58:00 +08:00
    用的 Electron 1.7.9
    tomzhou
        43
    tomzhou  
       2018-03-27 13:45:49 +08:00
    有人用过 Microsoft/react-native-windows 吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2671 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 13:48 PVG 21:48 LAX 06:48 JFK 09:48
    Do have faith in what you're doing.
    ubao 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