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

关于 Electron 有个想法

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

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

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

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

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

    我个人比较同意。Java 自带 package 这种模块化机制,自然而然地影响了 Maven 。
    而 js 一开始都不自带模块化语法,搞出来一堆 AMD 、CMD 、UMD 、IIFE 、CommonJS 这种,又追求简单。
    ychost
        48
    ychost  
       69 天前
    大部分情况 PWA 就够了吧
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4491 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:20 · PVG 10:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.