tozp
1.02D
V2EX  ›  Electron

关于 Electron 有个想法

  •  
  •   tozp · Mar 22, 2022 via iPhone · 9875 views
    This topic created in 1695 days ago, the information mentioned may be changed or developed.
    能不能开发个类似 bridge 的适配包,装上那个之后只要电脑上有 chrome 浏览器,所有 electron 应用就不必要每个都自带一整套 chrome 代码,以后应用程序的 size 会非常小?.net 框架貌似就是这样,只要电脑上装了运行时环境,应用程序不复杂的话只有几十几百 k 就能实现很多完整的功能。我没做过 electron ,所以以上也许是个可行的想法,欢迎交流。
    Supplement 1  ·  Mar 22, 2022
    感谢所有 v 友的评论,让我学到不少东西。
    48 replies  •  2022-04-18 19:07:41 +08:00
    dragonszy
    dragonszy
    Mar 22, 2022
    1
    https://github.com/sudhakar3697/electron-alternatives
    每种语言类似的有很多,比如 Rust 的 Tauri
    DawnMoon
    DawnMoon
    Mar 22, 2022 via Android
    2
    那么问题来了,有的应用只支持 Chrome 98 ,但你升级到了 99 ,就会导致这个应用不能用
    thetbw
    thetbw
    Mar 22, 2022
    3
    win11 自带了 edge 的
    C603H6r18Q1mSP9N
    C603H6r18Q1mSP9N
    Mar 22, 2022
    4
    Rust 的 Tauri ,研究过 自带 FF
    ysc3839
    ysc3839
    Mar 22, 2022 via Android
    5
    不能直接调用 Chrome ,但有类似方案,可以调用系统提供的 WebView 。不过主要问题是不同系统的 WebView 提供的接口以及支持的特性不一致,可能会受到许多限制。
    Kimen
    Kimen
    Mar 22, 2022
    6
    类似的我也有一个疑问,为什么每个 node 前端项目都有一个独立的 node_modules 文件夹,为什么不能像 maven 一样将相同的依赖包放在一起只留一份
    BingoXuan
    BingoXuan
    Mar 22, 2022
    7
    最好的例子就是 pywebview ,但很蛋痛的一点就是,只能拦截 js 不能拦截请求。也就是注定要启动一个服务器来处理静态资源。
    VirgilMing
    VirgilMing
    Mar 22, 2022 via iPhone
    8
    @Kimen 那樣又很容易就回到依賴地獄了
    但其實說白了還是這年頭硬盤內存都不是很貴⋯⋯
    ChefIsAwesome
    ChefIsAwesome
    Mar 22, 2022
    9
    这问题 electron 做出来就有人讨论过了。它不只是自带 chrome ,还自带了一个 node 环境。问题就是版本一变,软件直接就可能不能用了。现在的做法也是取舍的结果。
    shakaraka
    shakaraka
    Mar 22, 2022
    10
    好。你重走了 ie 的模式
    murmur
    murmur
    Mar 22, 2022
    11
    为啥不用 edge
    DTCPSS
    DTCPSS
    Mar 22, 2022
    12
    Tauri 这类框架感觉如果要做一些超出浏览器范围的事比较麻烦,比如在 Rust 里处理个本地大文件什么的。
    pkwenda
    pkwenda
    Mar 22, 2022
    13
    @DTCPSS #12 是的,写多 demo ,比如 sqlite 必须用 tauri 提供的,还依赖本地浏览器,升级 mac 系统 dev tools 崩溃等等问题

    https://github.com/pkwenda/tauri-vue3-vuetify3-template
    maichael
    maichael
    Mar 22, 2022
    14
    这玩意不是技术实现的问题,而是生态的问题,涉及到应用、浏览器、系统等生态,Electron 压根没有这个能力整合,不是没有过这种想法,而是压根推不起来。
    zhaozhao
    zhaozhao
    Mar 22, 2022❤️1
    15
    @Kimen pnpm 就是这么做的
    yolee599
    yolee599
    Mar 22, 2022
    16
    都用 Electron 了还考虑那么多干嘛?如果考虑资源问题,就不会使用 Electron ,大把其他方案 🐕
    0o0o0o0
    0o0o0o0
    Mar 22, 2022
    17
    参考 webview2
    binux
    binux
    Mar 22, 2022 via Android
    18
    Tink
    Tink
    Mar 22, 2022
    19
    主要是版本,如果版本兼容能解决的话肯定都会这么做
    otakustay
    otakustay
    Mar 22, 2022
    20
    我用 Electron 就可以毫无顾虑地使用 Webkit 和 V8 最新特性,如果只用客户端有的 Chrome ,又要回到 Web 这样到处考虑兼容性时代了
    sutaking
    sutaking
    Mar 22, 2022
    21
    题主的思路 Google 已经采纳了,2018 年开发者大会就弄了个 pwa 出来
    我还为此在知乎上做过一回标题党,哈哈,[一首凉凉送给 Electron( https://zhuanlan.zhihu.com/p/40648909)
    3dwelcome
    3dwelcome
    Mar 22, 2022
    22
    @yolee599 哪有什么其他方案。

    目前对 JS 支持最好的,版本更新最勤快的,也只有 electron 了。
    DTCPSS
    DTCPSS
    Mar 22, 2022
    23
    之前试着用 .NET 的 Photino (类似 Tauri 的跨平台本地 web app 框架)给一个用 Mac 的同事做了个工具(我用 Windows ),结果为了在 C# 侧获取一个用户选择的本地大文件不得不起了个服务器…
    fregie
    fregie
    Mar 22, 2022
    24
    微软已经在 windows 上出了 webview2 ,大概就是这个意思,把 chrome 内核掏出来做了 runtime 装在系统里
    我记得 teams 就要基于这个来做
    aptupdate
    aptupdate
    Mar 22, 2022
    25
    Electron 开发者又何尝不希望这样呢,只是迫不得已。
    Kimen
    Kimen
    Mar 22, 2022
    26
    @zhaozhao #15 感谢,学习了
    Arguments
    Arguments
    Mar 22, 2022 via iPhone
    27
    @Kimen 可以试试 pnpm
    lqzhgood
    lqzhgood
    Mar 22, 2022
    28
    说回来现在硬盘内存又不贵~
    vevy
    vevy
    Mar 22, 2022
    29
    这不就是 pwa 吗
    cweijan
    cweijan
    Mar 22, 2022
    30
    @sutaking pwa 有限制的, google 限制你啥你就只能用啥
    pengtdyd
    pengtdyd
    Mar 22, 2022
    31
    现在的软件开发越来越不需要考虑包的大小了,因为现在的电脑也好手机也会容量够大,现在开发要考虑的是如何快速实现业务而不是考虑性能
    hazardous
    hazardous
    Mar 22, 2022
    32
    直接写个 localhost 的本地服务就行了,nodejs 开撸。
    icyalala
    icyalala
    Mar 22, 2022
    33
    kennir
    kennir
    Mar 22, 2022
    34
    现在的设备 100 多 M 根本不是事啊,相对于去引用其他的模块(还是最核心的模块)带来的麻烦,肯定是现在这种方式更好

    不过我很讨厌 electron 的应用....和 os 之间的联系太弱了,在 macOS 上的分享,shortcuts 很难打通
    ruxuan1306
    ruxuan1306
    Mar 22, 2022
    35
    自带全套依赖对运行环境没假设,就像直接拉容器镜像用起来方便,不然配个环境就得小半天。
    learningman
    learningman
    Mar 22, 2022
    36
    @Kimen #6 pnpm 就是这么干的,全局维护唯一存储,剩下的用 hardlink 解决
    jfdnet
    jfdnet
    Mar 22, 2022
    37
    其实不能跟 java 一样,出个 runtime 么?
    zhangneww
    zhangneww
    Mar 22, 2022
    38
    如果 chrome 插件 API 扩展一下呢?每个 Electron 都变成一个浏览器插件岂不是更小?
    Rrrrrr
    Rrrrrr
    Mar 22, 2022
    39
    @jfdnet eletron 就是把 runtime 打包一起了啊
    ziseyinzi
    ziseyinzi
    Mar 22, 2022
    40
    electron 为什么不能共享也算是 V2 月经贴了
    Huelse
    Huelse
    Mar 22, 2022
    41
    之前就遇到个应用调用的系统的 Chromium 内核和 Gecko 内核

    https://docs.shuax.com/MouseInc/#/
    trainingloadai
    trainingloadai
    Mar 22, 2022
    42
    rust 有类似的东西
    jfdnet
    jfdnet
    Mar 22, 2022
    43
    @Rrrrrr 所以不要打包在一起啊,出个 runtime 让有需要的用户可以单独安装,就不用每个项目都那么大文件了。所以说像 java 的方式为什么不可行?
    robinlovemaggie
    robinlovemaggie
    Mar 22, 2022
    44
    @zhaozhao #15 pnpm does not work with electron
    lmoon
    lmoon
    Mar 22, 2022 via Android
    45
    @robinlovemaggie 可以一起用啊,你自己没配好吧
    dcsuibian
    dcsuibian
    Mar 22, 2022
    47
    @Kimen 之前看到过一个评论:语言本身缺陷,node 基础库设计缺陷,早期社区核心开发者技术能力缺陷 => 大量语言扩展包泛滥 => 核心包依赖爆炸 => 版本问题,安全问题,性能问题 => 各种稀奇古怪的解决方案 => 更多问题

    我个人比较同意。Java 自带 package 这种模块化机制,自然而然地影响了 Maven 。
    而 js 一开始都不自带模块化语法,搞出来一堆 AMD 、CMD 、UMD 、IIFE 、CommonJS 这种,又追求简单。
    ychost
    ychost
    Apr 18, 2022
    48
    大部分情况 PWA 就够了吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4818 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 180ms · UTC 03:14 · PVG 11:14 · LAX 19:14 · JFK 22:14
    ♥ Do have faith in what you're doing.