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

2020-08-19 21:27:11 +08:00
 timpaik

众所周知,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.

3668 次点击
所在节点    Electron
19 条回复
love
2020-08-19 21:30:57 +08:00
你这样不是要先安装一个 electron ?那为何不直接用平台原生浏览器核心,都省了这一步了
Cbdy
2020-08-19 21:34:19 +08:00
您说的是 pwa 吧
timpaik
2020-08-19 21:36:27 +08:00
@love windows 的 webview 是 edge 或者 IE,那玩意完全没法用吧
新 edge 目前没有预装?并且我装了新 edge,webview 还是旧 edge
timpaik
2020-08-19 21:37:23 +08:00
@Cbdy 但是这样的话可以做成原生应用的样子啊,并且完全可以离线运行,托盘图标,直接操作文件系统(最后这点最重要)
ochatokori
2020-08-19 21:39:12 +08:00
arch 上的 electron 应用有很多都是用本地的 electeon 启动的
但是事实上开发者打包应用的时候还是要打包个 electron 进去
ochatokori
2020-08-19 21:41:44 +08:00
而且 electeon 也会有版本问题,这两年好像就更了 4 个大版,兼容性堪忧
timpaik
2020-08-19 21:43:41 +08:00
@ochatokori arch 上的很多包确实是直接用了个脚本启动?
关于兼容性,我了解的不是很多,目前并不知道有什么向前不兼容的 api 、、
Kr98
2020-08-19 21:44:32 +08:00
你不是第一个这么想的,但这个想法一直无法落地。electron 周更,而且新版本有时会引入新 bug 或 breaking changes,基本不可能提供公用的核心。
Cbdy
2020-08-19 22:17:52 +08:00
@timpaik 您说的 pwa 都满足的,比如“最重要的这点”
https://web.dev/native-file-system/
anguiao
2020-08-19 22:22:18 +08:00
@timpaik WebView2 正在搞了,调用新版 Edge ( Chromium 内核)
nieyujiang
2020-08-19 22:39:09 +08:00
有 runtime 版本问题,一旦无法匹配,直接崩溃,而且是 c++层面的,debug 都费劲
BianSir
2020-08-19 22:42:18 +08:00
有想法,棒!
timpaik
2020-08-19 23:37:26 +08:00
@Cbdy 总不可能发布应用给个浏览器安装包啊不是
timpaik
2020-08-19 23:46:16 +08:00
@anguiao 但也仅现 windows10 最新版了吧
光这一条就能劝退很多开发者
不过如果很快出的话应该还是很香的
cielpy
2020-08-20 00:37:25 +08:00
刚看了下 Electron 已经 11.x 了。。。
anguiao
2020-08-20 01:04:18 +08:00
@timpaik 不会,甚至兼容 Win7,只要能装新版 Edge 就可以用。
mgrddsj
2020-08-20 18:38:22 +08:00
之前好像有帖子讨论过这个问题。结果是会因为不同版本自建的兼容性问题,像 C++ 那样在用户电脑上装 N 个 Microsoft Visual C++ Redistributable,反而失去了 Electron 打包的便利。
mgrddsj
2020-08-20 18:40:13 +08:00
@mgrddsj 自建 → 之间
timpaik
2021-07-18 13:24:10 +08:00
过了许久,现在再看看,还是 webview2 真香,用 tauri 还能调用 native

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699740

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX