1
dragonszy 2022-03-22 09:17:06 +08:00
https://github.com/sudhakar3697/electron-alternatives
每种语言类似的有很多,比如 Rust 的 Tauri |
2
villivateur 2022-03-22 09:17:21 +08:00 via Android
那么问题来了,有的应用只支持 Chrome 98 ,但你升级到了 99 ,就会导致这个应用不能用
|
3
thetbw 2022-03-22 09:17:51 +08:00
win11 自带了 edge 的
|
4
C603H6r18Q1mSP9N 2022-03-22 09:18:58 +08:00
Rust 的 Tauri ,研究过 自带 FF
|
5
ysc3839 2022-03-22 09:21:41 +08:00 via Android
不能直接调用 Chrome ,但有类似方案,可以调用系统提供的 WebView 。不过主要问题是不同系统的 WebView 提供的接口以及支持的特性不一致,可能会受到许多限制。
|
6
Kimen 2022-03-22 09:22:54 +08:00
类似的我也有一个疑问,为什么每个 node 前端项目都有一个独立的 node_modules 文件夹,为什么不能像 maven 一样将相同的依赖包放在一起只留一份
|
7
BingoXuan 2022-03-22 09:33:30 +08:00
最好的例子就是 pywebview ,但很蛋痛的一点就是,只能拦截 js 不能拦截请求。也就是注定要启动一个服务器来处理静态资源。
|
8
VirgilMing 2022-03-22 09:33:48 +08:00 via iPhone
@Kimen 那樣又很容易就回到依賴地獄了
但其實說白了還是這年頭硬盤內存都不是很貴⋯⋯ |
9
ChefIsAwesome 2022-03-22 09:34:14 +08:00
这问题 electron 做出来就有人讨论过了。它不只是自带 chrome ,还自带了一个 node 环境。问题就是版本一变,软件直接就可能不能用了。现在的做法也是取舍的结果。
|
10
wunonglin 2022-03-22 09:34:32 +08:00
好。你重走了 ie 的模式
|
11
murmur 2022-03-22 09:41:35 +08:00
为啥不用 edge
|
12
DTCPSS 2022-03-22 09:42:13 +08:00
Tauri 这类框架感觉如果要做一些超出浏览器范围的事比较麻烦,比如在 Rust 里处理个本地大文件什么的。
|
13
pkwenda 2022-03-22 09:51:19 +08:00
@DTCPSS #12 是的,写多 demo ,比如 sqlite 必须用 tauri 提供的,还依赖本地浏览器,升级 mac 系统 dev tools 崩溃等等问题
https://github.com/pkwenda/tauri-vue3-vuetify3-template |
14
maichael 2022-03-22 09:52:17 +08:00
这玩意不是技术实现的问题,而是生态的问题,涉及到应用、浏览器、系统等生态,Electron 压根没有这个能力整合,不是没有过这种想法,而是压根推不起来。
|
16
yolee599 2022-03-22 10:01:08 +08:00
都用 Electron 了还考虑那么多干嘛?如果考虑资源问题,就不会使用 Electron ,大把其他方案 🐕
|
17
0o0o0o0 2022-03-22 10:03:25 +08:00
参考 webview2
|
18
binux 2022-03-22 10:04:59 +08:00 via Android
|
19
Tink 2022-03-22 10:06:05 +08:00
主要是版本,如果版本兼容能解决的话肯定都会这么做
|
20
otakustay 2022-03-22 10:24:27 +08:00
我用 Electron 就可以毫无顾虑地使用 Webkit 和 V8 最新特性,如果只用客户端有的 Chrome ,又要回到 Web 这样到处考虑兼容性时代了
|
21
sutaking 2022-03-22 10:39:17 +08:00
题主的思路 Google 已经采纳了,2018 年开发者大会就弄了个 pwa 出来
我还为此在知乎上做过一回标题党,哈哈,[一首凉凉送给 Electron( https://zhuanlan.zhihu.com/p/40648909) |
23
DTCPSS 2022-03-22 10:40:52 +08:00
之前试着用 .NET 的 Photino (类似 Tauri 的跨平台本地 web app 框架)给一个用 Mac 的同事做了个工具(我用 Windows ),结果为了在 C# 侧获取一个用户选择的本地大文件不得不起了个服务器…
|
24
fregie 2022-03-22 10:53:16 +08:00
微软已经在 windows 上出了 webview2 ,大概就是这个意思,把 chrome 内核掏出来做了 runtime 装在系统里
我记得 teams 就要基于这个来做 |
25
aptupdate 2022-03-22 11:01:14 +08:00
Electron 开发者又何尝不希望这样呢,只是迫不得已。
|
28
lqzhgood 2022-03-22 11:15:46 +08:00
说回来现在硬盘内存又不贵~
|
29
vevy 2022-03-22 11:17:57 +08:00
这不就是 pwa 吗
|
31
pengtdyd 2022-03-22 13:23:04 +08:00
现在的软件开发越来越不需要考虑包的大小了,因为现在的电脑也好手机也会容量够大,现在开发要考虑的是如何快速实现业务而不是考虑性能
|
32
hazardous 2022-03-22 13:44:13 +08:00
直接写个 localhost 的本地服务就行了,nodejs 开撸。
|
33
icyalala 2022-03-22 13:52:56 +08:00
https://github.com/electron/electron/issues/673
从 2014 年讨论到现在 |
34
kennir 2022-03-22 14:14:08 +08:00
现在的设备 100 多 M 根本不是事啊,相对于去引用其他的模块(还是最核心的模块)带来的麻烦,肯定是现在这种方式更好
不过我很讨厌 electron 的应用....和 os 之间的联系太弱了,在 macOS 上的分享,shortcuts 很难打通 |
35
ruxuan1306 2022-03-22 14:48:25 +08:00
自带全套依赖对运行环境没假设,就像直接拉容器镜像用起来方便,不然配个环境就得小半天。
|
36
learningman 2022-03-22 14:51:33 +08:00
@Kimen #6 pnpm 就是这么干的,全局维护唯一存储,剩下的用 hardlink 解决
|
37
jfdnet 2022-03-22 16:02:38 +08:00
其实不能跟 java 一样,出个 runtime 么?
|
38
zhangneww 2022-03-22 16:21:49 +08:00
如果 chrome 插件 API 扩展一下呢?每个 Electron 都变成一个浏览器插件岂不是更小?
|
40
ziseyinzi 2022-03-22 16:28:36 +08:00
electron 为什么不能共享也算是 V2 月经贴了
|
41
Huelse 2022-03-22 16:46:38 +08:00
|
42
Asyncway 2022-03-22 19:10:48 +08:00
rust 有类似的东西
|
43
jfdnet 2022-03-22 19:21:42 +08:00
@Rrrrrr 所以不要打包在一起啊,出个 runtime 让有需要的用户可以单独安装,就不用每个项目都那么大文件了。所以说像 java 的方式为什么不可行?
|
44
robinlovemaggie 2022-03-22 19:42:56 +08:00
@zhaozhao #15 pnpm does not work with electron
|
45
lmoon 2022-03-22 19:52:29 +08:00 via Android
@robinlovemaggie 可以一起用啊,你自己没配好吧
|
46
robinlovemaggie 2022-03-22 20:08:26 +08:00
|
47
dcsuibian 2022-03-22 20:37:42 +08:00
@Kimen 之前看到过一个评论:语言本身缺陷,node 基础库设计缺陷,早期社区核心开发者技术能力缺陷 => 大量语言扩展包泛滥 => 核心包依赖爆炸 => 版本问题,安全问题,性能问题 => 各种稀奇古怪的解决方案 => 更多问题
我个人比较同意。Java 自带 package 这种模块化机制,自然而然地影响了 Maven 。 而 js 一开始都不自带模块化语法,搞出来一堆 AMD 、CMD 、UMD 、IIFE 、CommonJS 这种,又追求简单。 |
48
ychost 2022-04-18 19:07:41 +08:00
大部分情况 PWA 就够了吧
|