V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chunqiuyiyu
V2EX  ›  Node.js

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

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

    如题,使用 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   ·   实用小工具   ·   4016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 10:22 · PVG 18:22 · LAX 02:22 · JFK 05:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.