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

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

  •  
  •   zxCoder · 2022-07-02 10:14:55 +08:00 · 3096 次点击
    这是一个创建于 657 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   我们的愿景   ·   实用小工具   ·   2822 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:54 · PVG 19:54 · LAX 04:54 · JFK 07:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.