介绍
发现一个很不错的开源项目:wails是一个使用现代化web技术(vite+vue3, react等)构建桌面端应用的go语言项目,其兼容性不错, 界面效果和性能与electron差不多。官网:https://wails.io/zh-Hans/docs/gettingstarted/firstproject
开发环境要求
- go >= 1.18
- node >= 16
优点
- 项目结构清晰,ui层和基础功能分离。
- 和web前端一样的开发体验,带F12console控制台,支持热更新。
- 体积小,打包exe 10M左右。
- 支持多端
- win10、win11 64位 (依靠微软webview2内核)
- win7 64位 (依靠微软webview2_v109内核, v109内核下载地址)
- linux 64位(amd64/arm64) (依靠libgtk3 和libwebkit2gtk两个库, deepin 20上测试功能正常)
- MacOS 10.13+ AMD64
- MacOS 11.0+ ARM64
项目结构
样例-markdown编辑器
基于go wails构建的markdown编辑器。
偶然冲突
如果电脑上装了安全管家之类的(如奇安信), 会被屏蔽webview2内核的dll库,应用无法正常运行,甚至edge浏览器也无法运行。相反,electron打包的应用可以正常运行。
不清楚是不是只是这台电脑的问题。。
与electron比较
- electron打包产物,会包含完整的chromium内核以及nodejs,其体积会在300M起步(版本chromium 100+ )
- walis打包的应用, 基础包10M, 所有应用共用一个webview2内核。只需要安装一次依赖就行。
- 两者都是用js等前端技术搞定桌面跨端应用, UI层逻辑开发差不多。electron提供大量的原生接口以及系统交互接口,文档较多; wails只提供基本的系统交互逻辑(文件选择框,系统通知接口,系统对话框,剪切板访问等), 其余逻辑需要自行用go实现)