背景故事
最近在学习 svelte,发现了一个 chatgpt 的网页界面,简单尝试了下。
导出静态文件
从 github 克隆源码,并运行以下命令。 会在 dist 目录下生成 index.html 和对应的 js、css 等静态文件。
git clone https://github.com/Niek/chatgpt-web.git
cd chatgpt-web
npm install
npm run build
使用 aardio 为网页套壳
如果不想部署在网络上, 可以使用 aardio 很方便地为网页项目套个壳, 实际上是调用 webview2,在本地起了一个服务端。 只需要几行代码。
import win.ui
/*DSG{{*/
mainForm = win.form(text="chatgpt-web";right=959;bottom=639;maximize=1)
mainForm.add()
/*}}*/
import web.view
import wsock.tcp.simpleHttpServer
var wb = web.view(mainForm)
wb.go("/res/index.html")
mainForm.show();
return win.loopMessage();
将上面导出的全部文件,复制到 aardio 工程的 res 目录下。 生成的 exe 会自动内嵌静态文件,打包为一个单独的 exe 文件,方便分发。
导入 wsock.tcp.simpleHttpServer 后,web.view 打开网页时指定 res 目录下 html 文件, 会在本地空闲端口自动启动一个简单多线程服务端。
What I Learned
- svelte 前端项目导出静态文件
- 使用 aardio 的 web.view 库为网页套壳,变成本地桌面应用。