用 web 技术开发桌面应用果然不可取吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
chunqiuyiyu

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

  •  
  •   chunqiuyiyu Apr 16, 2016 23904 views
    This topic created in 3662 days ago, the information mentioned may be changed or developed.

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

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

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

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