只是疑问,如果一个 Electron 应用将 Nodejs 部分打包成二进制文件,然后使用系统原生平台做一个启动按钮,点击后直接执行这个二进制文件 + 启动一个本地 http server 用来在 localhost 上展示前端 UI 界面,通信直接走 socket
这么搞初看上去好像也没啥毛病,当然肯定会存在很多限制,不知道这种限制会是啥?为啥都没见到有人这么玩过
101
AoEiuV020JP 2023-11-23 14:05:10 +08:00
@Hug125 #99 我没有使用 Inoreader ,但我在用的 fluent-reader 就有支持 Inoreader ,不知道效果咋样,
如果很多个支持 Inoreader 的客户端你使用都有问题,会不会是用法不对, |
102
lizy0329 2023-11-23 14:18:09 +08:00
散了吧,这个东西连文章标题未写不好,还讨论个啥?最厉害的是还有人正经回答?
|
103
go522000 2023-11-23 14:47:32 +08:00
想像一下用户使用场景,nodejs 封装后,只有一个启动与关闭的按钮,剩下的交给本地浏览器。
简洁,然后交给用户使用。 刚好,用户是用 360 浏览器,软件用着用着,突然右下角给你弹个“是兄弟就来砍我一刀”?刚好软件右下角是进度提示或状态显示,那体验会不会很差。 然后我想实现弹出一个小窗口作为客服或聊天窗口,360 直接给你报个不安全(或没有提示,只在地址栏显示已拦截多少弹窗),或者更狠的直接提示让用户下载 360 杀毒? 想像一下这几个场景,我还是选择 electron ,实在不行 tauri 也比 360 浏览器好。 360 浏览器只是一个场景,因为你无法控制用户自己的浏览器安装了啥插件,比如去广告插件或皮肤等,某些功能无法点击或错乱了,用户又不知道啥原因,最后只能怪软件开发商。 |
105
yukinotech 2023-11-23 15:08:48 +08:00
举个不恰当的例子,qb 虽然有独立 gui ,但是本身会提供一个 localhost 的 server ,和你说的思路是基本类似的
|
106
mylovesaber 2023-11-23 15:14:55 +08:00
@Nich0la5 linux 系统中,内核为系统最底层,在内核之上,有且只有一个程序集合叫 glibc (不考虑其他分支的前提下),剩下能组建出用户可用的 linux 系统的所有程序几乎在运行时都要调用 glibc ,因为所有程序都希望小,依赖细化,即 A 程序依赖于 B 和 C 依赖程序,所以 A 本身不包括 B 和 C 的依赖,只有当你装了 B 和 C 后,A 才被允许安装进系统。结果导致对 glibc 的版本强关联,你可以随便乱升级各种软件的二进制,但你不能随便升级 glibc 二进制,因为如果只升级 glibc ,你系统直接报废,只剩一个内核能运行,所以如果有一个软件不希望缚手缚脚,那么他运行时就需要内置一个 glibc ,间接得,linux 软件包开始推广通用包结构,比如 flatpak (不是说他就内置了 glibc ),deepin 也有了自己的玲珑结构,目的就是要摆脱又臭又长自身又不内嵌的依赖链(树),只要内核允许的最低 glibc 版本低于软件本身依赖,这个软件不能运行,哪怕其他任何一个软件对 glibc 有刚需依赖而 glibc 版本低导致运行不了,都跟自己没一丁点关系,兼容性 max 了
|
107
huangliu 2023-11-23 15:56:57 +08:00
你说的这个方案,不就是我开源项目在用的吗。选 wails 或者 tauri 就可以了。
就是系统兼容性确实没有 electron 那么好 |
108
finalwave 2023-11-23 16:23:18 +08:00
点开前以为是 tauri ,点开后一看是 webUI 。aria2 的前端 UI 界面都不知道多少种了。
|
110
xausky 2023-11-23 16:26:53 +08:00
|
111
zliea 2023-11-23 16:29:32 +08:00
现在一体机很多都这么干了。
|
112
nullico 2023-11-23 17:34:05 +08:00
@hamsterbase #14 请问下 react native 能源生运行 nodejs 么?包括那些 native module?
|
113
dai269619118 2023-11-23 17:54:59 +08:00
不会的用的什么东西在他手里都用不好
现在硬盘这么便宜只有程序员会纠结在 100m |
114
niceyuri 2023-11-23 17:55:09 +08:00
强烈安利《 the Object Primer 》,作者 Scott W.Ambler 就是 UML 的发明者。这本书应该能解决你所有疑问
|
116
mokevip 2023-11-23 18:27:18 +08:00
额,真的不考虑 electron 有很多调用系统功能的方法是浏览器不支持的?
|
117
nekomoyi 2023-11-23 19:41:55 +08:00
我常用 sunshine 来作为远程桌面工具,它就是这样子实现的,运行一个服务作为后端,前端页面通过浏览器打开网页来进行基本的配置等操作。
|
118
hamsterbase 2023-11-23 20:42:54 +08:00 1
@nullico
react native 内置 nodejs 使用的是这个项目。 https://github.com/nodejs-mobile/nodejs-mobile-react-native 可以运行 nodejs 与 native module 。 如果是 native module , 需要自己重新构建一下。 一般需要构建 3 份,分别为 iOS 模拟器,iOS 真机,安卓。 具体可以看 https://github.com/nodejs-mobile/prebuild-for-nodejs-mobile |
119
sakura6264 2023-11-24 08:42:15 +08:00
看到很多说浏览器这个实现不了那个实现不了的,op 这个方案里不是还有 node 吗,又不是只有一个 html ,放到 node 上实现不了吗,写 electron 也是这么干的吧
|
120
pursuer 2023-11-24 08:46:40 +08:00
@mylovesaber 这个我觉得 libc 兼容性是有点锅的。像浏览器,依然保留对古老网页的兼容,虽然 ABI 兼容比 js 麻烦很多。像 windows ,升级了这么多版本依然保持了较好的兼容性,可能也是得益于 COM 机制。
|
121
unco020511 2023-11-24 09:24:48 +08:00
我觉得 Electron 还挺好用的
|
122
cmdOptionKana 2023-11-24 10:32:14 +08:00
@sakura6264 对,很多人误解很大,可能没接触过类似软件。
|
124
mylovesaber 2023-11-25 07:08:49 +08:00
@pursuer 其实一般人也不会轻易动系统中的 libc ,主要的冲突点就是国内一群人用 centos7 ,然后遇到比如等保验收或者攻防演练时又不能用老版本软件,新版软件又必须要新版本 glibc ,然后一些 sm 环境禁止用 docker ,就每个软件都得内嵌一个 glibc ,相当得蛋疼,比如 redis ,一个软件编译出来就 5m ,自包含所有自有依赖后,体积将近 400m ,虽然打成 rpm 包只有 35m 左右,这情况刚好跟楼主说的那情况差不多了
|
125
Ashes26 2023-12-22 06:52:15 +08:00 via Android
用户:我的上古浏览器也可以吗
|