程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

用bun+webview做一个桌面程序

hfteth 2025-02-24 16:33:06 技术文章 9 ℃

许多web程序员缺乏桌面程序的开发经验,比如使用VC++或者.NET之类的去开发桌面程序。

近些年出现一个用chrome+nodejs+html制作桌面程序,就是大名鼎鼎的electron,其实electron的主要有点是夸平台,缺点就是体积太大。所以程序员又发现我不用electron,改用webview2,WIN10(21版本以后)-11会自带edge webview。

bun是来代替nodejs的一个runtime,优点是速度快,缺点是体积大。

这里我就简单介绍一下bun+webview+html制作桌面程序的流程。

这里我用WINDOWS为例:

1、去https://bun.sh下载bun.exe

2、安装webview-bun

bun i webview-bun   // 相当于 npm i webview

3、写个代码

// main.ts
// 这是webview-bun的官方例子
import { SizeHint, Webview } from "webview-bun";

const html = `

    
        

Hello from bun v${Bun.version} !

`; const webview = new Webview(); webview.setHTML(html); webview.size={ width: 1280, height: 720,hint: SizeHint.NONE}; webview.title = "Bun Webview"; webview.run();

4、运行程序

bun run main.ts

5、打包成exe文件

bun build ./main.ts --compile --minify --windows-hide-console --windows-icon=./icon.ico

--compile 生成exe,其实就是bun.exe+main.ts

--minify 压缩相关ts或js代码

--windows-hide-console 隐藏 命令行窗口 bun 1.2才有的功能

--windows-icon=./icon.ico 指定ico图标

生成以后100M+,因为bun.exe本身就100M+

其实使用webview最佳方案是.NET直接调用webview2,但可能对有些人来说有点难。还有可以使用Python里的pywebview,这个就简单多了。GO的webview也可以,生成的exe也只有几M。下次我讲讲GO里使用webview。

Tags:

最近发表
标签列表