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

突然有个奇特的想法-electron 启动器

  •  
  •   timpaik · 2020-08-19 21:27:11 +08:00 · 3703 次点击
    这是一个创建于 1591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    众所周知,electron 的程序体积非常大

    一个 helloworld 都将近 160MB 了

    然后我就想有没有什么解决方法

    毕竟如果没有二进制依赖的话 electron 其实是只生成一个 app.asar 的?(可能还要 app-update.yml 什么的)

    然后我想有没有可能把 electron 应用的 app.asar 都独立出来,然后使用 electron app.asar 这样的命令来启动应用?

    这时候只需要一个启动器,用来检查是否安装了 electron,然后检查更新什么的,并用 electron 启动 app.asar 不就行了?

    这样的话多个应用也能减少体积(毕竟只有一个 electron 本体了)

    如果是直接打包的网页版本,那就更直接了,直接 electron https://v2ex.com/ 这样子的命令就可以

    毕竟 electron 也写了: To run a local app, execute the following on the command line: electron path-to-app

    各位大佬看看,可行性高吗?

    附上 electron 的 help:

    Electron 9.2.1 - Build cross platform desktop apps with JavaScript, HTML, and CSS
    Usage: electron [options] [path]
    
    A path to an Electron app may be specified. It must be one of the following:
      - index.js file.
      - Folder containing a package.json file.
      - Folder containing an index.js file.
      - .html/.htm file.
      - http://, https://, or file:// URL.
    
    Options:
      -i, --interactive     Open a REPL to the main process.
      -r, --require         Module to preload (option can be repeated).
      -v, --version         Print the version.
      -a, --abi             Print the Node ABI version.
    
    
    19 条回复    2021-07-18 13:24:10 +08:00
    love
        1
    love  
       2020-08-19 21:30:57 +08:00
    你这样不是要先安装一个 electron ?那为何不直接用平台原生浏览器核心,都省了这一步了
    Cbdy
        2
    Cbdy  
       2020-08-19 21:34:19 +08:00 via Android
    您说的是 pwa 吧
    timpaik
        3
    timpaik  
    OP
       2020-08-19 21:36:27 +08:00
    @love windows 的 webview 是 edge 或者 IE,那玩意完全没法用吧
    新 edge 目前没有预装?并且我装了新 edge,webview 还是旧 edge
    timpaik
        4
    timpaik  
    OP
       2020-08-19 21:37:23 +08:00
    @Cbdy 但是这样的话可以做成原生应用的样子啊,并且完全可以离线运行,托盘图标,直接操作文件系统(最后这点最重要)
    ochatokori
        5
    ochatokori  
       2020-08-19 21:39:12 +08:00 via Android
    arch 上的 electron 应用有很多都是用本地的 electeon 启动的
    但是事实上开发者打包应用的时候还是要打包个 electron 进去
    ochatokori
        6
    ochatokori  
       2020-08-19 21:41:44 +08:00 via Android
    而且 electeon 也会有版本问题,这两年好像就更了 4 个大版,兼容性堪忧
    timpaik
        7
    timpaik  
    OP
       2020-08-19 21:43:41 +08:00
    @ochatokori arch 上的很多包确实是直接用了个脚本启动?
    关于兼容性,我了解的不是很多,目前并不知道有什么向前不兼容的 api 、、
    Kr98
        8
    Kr98  
       2020-08-19 21:44:32 +08:00
    你不是第一个这么想的,但这个想法一直无法落地。electron 周更,而且新版本有时会引入新 bug 或 breaking changes,基本不可能提供公用的核心。
    Cbdy
        9
    Cbdy  
       2020-08-19 22:17:52 +08:00 via Android
    @timpaik 您说的 pwa 都满足的,比如“最重要的这点”
    https://web.dev/native-file-system/
    anguiao
        10
    anguiao  
       2020-08-19 22:22:18 +08:00 via Android
    @timpaik WebView2 正在搞了,调用新版 Edge ( Chromium 内核)
    nieyujiang
        11
    nieyujiang  
       2020-08-19 22:39:09 +08:00 via iPhone
    有 runtime 版本问题,一旦无法匹配,直接崩溃,而且是 c++层面的,debug 都费劲
    BianSir
        12
    BianSir  
       2020-08-19 22:42:18 +08:00 via iPhone
    有想法,棒!
    timpaik
        13
    timpaik  
    OP
       2020-08-19 23:37:26 +08:00 via iPhone
    @Cbdy 总不可能发布应用给个浏览器安装包啊不是
    timpaik
        14
    timpaik  
    OP
       2020-08-19 23:46:16 +08:00 via iPhone
    @anguiao 但也仅现 windows10 最新版了吧
    光这一条就能劝退很多开发者
    不过如果很快出的话应该还是很香的
    cielpy
        15
    cielpy  
       2020-08-20 00:37:25 +08:00
    刚看了下 Electron 已经 11.x 了。。。
    anguiao
        16
    anguiao  
       2020-08-20 01:04:18 +08:00 via Android
    @timpaik 不会,甚至兼容 Win7,只要能装新版 Edge 就可以用。
    mgrddsj
        17
    mgrddsj  
       2020-08-20 18:38:22 +08:00 via Android
    之前好像有帖子讨论过这个问题。结果是会因为不同版本自建的兼容性问题,像 C++ 那样在用户电脑上装 N 个 Microsoft Visual C++ Redistributable,反而失去了 Electron 打包的便利。
    mgrddsj
        18
    mgrddsj  
       2020-08-20 18:40:13 +08:00 via Android
    @mgrddsj 自建 → 之间
    timpaik
        19
    timpaik  
    OP
       2021-07-18 13:24:10 +08:00 via Android
    过了许久,现在再看看,还是 webview2 真香,用 tauri 还能调用 native
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2806 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.