许多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。