用bun+webview做一个桌面程序

许多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 = `
<html>
    <body>
        <h1>Hello from bun v${Bun.version} !</h1>
    </body>
</html>
`;

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。

相关文章

aardio + Python 可视化快速开发桌面程序,一键生成独立 EXE

网络上大家分享的 aardio + Python 混合开发的文章很多,不得不说 aardio 与 Python 混合开发是真的简单 !快速入门推荐几个快速上手教程:aardio + Python 快速...

Python小白逆袭!7天吃透PyQt6,独立开发超酷桌面应用

Python GUI编程:PyQt6从入门到实战的全面指南在Python的庞大生态系统中,PyQt6作为一款强大的GUI(Graphical User Interface,图形用户界面)编程框架,为开...

python tkinter桌面应用gui库基础介绍

编程总离不开桌面应用,python内置了一个标准的GUI库,可以很方便的开发桌面应用程序,就是tkinter库。要使用tkinter直接用 import tkinter 导入库就可以了,无需额外安装。...

用python怎么做最简单的桌面计算器

有网友问,用python怎么做一个最简单的桌面计算器。如果只强调简单,在本机运行,不考虑安全性和容错等的话,你能想到的最简单的方案是什么呢?我觉得用tkinter加eval就够简单的。现在开整。首先创...

用Python打造一个简洁美观的桌面计算器

最近在学习 Python GUI 编程,顺手用 Tkinter 实现了一个简易桌面计算器,功能虽然不复杂,但非常适合新手练手。如果你正在学习 Python,不妨一起来看看这个项目吧!项目背景Tkint...