我发现,直接用前端技术部署一个网站,然后再提供一个小软件用于本地启动一个服务端。这样开发,比起什么套壳客户端, webview, electron,会快很多。虽然不是特别优雅,但是对于只熟悉 web 开发的人来说,还是很方便的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX    前端开发

我发现,直接用前端技术部署一个网站,然后再提供一个小软件用于本地启动一个服务端。这样开发,比起什么套壳客户端, webview, electron,会快很多。虽然不是特别优雅,但是对于只熟悉 web 开发的人来说,还是很方便的

  •  
  •   zxCoder 2022-07-02 10:14:55 +08:00 3621 次点击
    这是一个创建于 1279 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2022-07-02 19:12:43 +08:00
    estk
        1
    estk  
       2022-07-02 10:22:26 +08:00 via Android
    你说的是 uniapp ?
    cmdOptionKana
        2
    cmdOptionKana  
       2022-07-02 10:28:42 +08:00
    对,这是最最省力的方法,做自用的小工具很好。但如果要给别人用,用户只看外观和方便,非常可惜这种方式用户不买账。
    ChenYFan
        3
    ChenYFan  
       2022-07-02 10:33:43 +08:00
    PWA+本地应用其实也很不错,我的 ClashWeb 改装成 PWA 之后使用体验和 CFW 无异
    renmu123
        4
    renmu123  
       2022-07-02 11:36:00 +08:00 via Android
    那么小软件你用什么开发呢,electron 可不用考虑兼容性
    daliusu
        5
    daliusu  
       2022-07-02 11:56:57 +08:00
    electron 开发跟 web 有啥不一样的吗?如果你不依赖本地的一些 api ,其实就是 web 开发,何来的快很多一说
    dcsuibian
        6
    dcsuibian  
       2022-07-02 12:15:55 +08:00
    那这个服务端是在干什么呢?
    charlie21
        7
    charlie21  
       2022-07-02 12:27:46 +08:00
    phpMyAdmin
    aria2gui
    XCFOX
        8
    XCFOX  
       2022-07-02 12:39:11 +08:00
    jupyter
    nocodb
    strapi
    zxCoder
        9
    zxCoder  
    OP
       2022-07-02 12:54:27 +08:00
    @dcsuibian 比如访问本地文件
    zxCoder
        10
    zxCoder  
    OP
       2022-07-02 12:55:19 +08:00
    @daliusu electron 还是需要一定的学习成本的。跟 web 还是不同的
    oldshensheep
        11
    oldshensheep  
       2022-07-02 13:05:49 +08:00
    本来就有这样的软件,比如 syncthing ,minio 等等,他们有一个 Web 的管理界面,不过他们不是在一个在线的网站上,而是本地的 HTTP 服务器,因为用户要离线运行。
    oldshensheep
        12
    oldshensheep  
       2022-07-02 13:13:49 +08:00   1
    用在线的网站的话,那样就要求用户联网才能运行,最好是集成到程序内。

    而且用在线的网站的话有潜在的安全性问题(相对于本地的来说)。
    比如加载的文件的来源不可信,因为前端代码可以随意更新。

    如果自己部署的话不如就集成到程序内,很多 go 程序都是怎么做的。
    duke807
        13
    duke807  
       2022-07-02 13:32:30 +08:00 via Android
    我的 GUI 件都是干的, python 本,自打器呈界面。
    dcsuibian
        14
    dcsuibian  
       2022-07-02 13:34:57 +08:00   1
    @zxCoder 比如说,我想要遍历某个文件夹。web 上的 js 就需要先通过 http 调服务端,服务端获取结果再回来。
    而 Electron 就可以直接使用 nodejs 的方法获取结果。
    假设做一个带 GUI 的工具程序,后者我感觉能方便不少。如果涉及到服务端推送就更麻烦了。

    这样的应用也有,Clash 、qBittorrent Web UI 、H2 Database ,特点就是核心部分都不是用 js 实现的。

    主要问题是:什么场景下,这个“本地服务端”是必不可少的
    joesonw
        15
    joesonw  
       2022-07-02 14:04:47 +08:00 via iPhone
    electron 你不用它那些 api ,直接 CS 也可以啊,而且用户一键打开。
    jsq2627
        16
    jsq2627  
       2022-07-02 14:39:30 +08:00
    当然可以。一般 HTTPS 页面没法加载 HTTP 资源,Chrome/Firefox 甚至为这种场景专门开放了个从 HTTPS 页面访问 http://localhost 的口子
    https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content#loading_locally_delivered_mixed-resources
    MonoLogueChi
        17
    MonoLogueChi  
       2022-07-02 19:12:43 +08:00 via Android
    很多软件在用这种方式,Linux 上比较多,Windows 上我见过的比较多的,各种 aria2 的控制面板
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1114 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 17:37 PVG 01:37 LAX 09:37 JFK 12:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86