Electron
Electron
有着其强大的跨端能力、社区生态,更重要的是可以直接使用 HTML
+ JS
+ CSS
来开发桌面端应用程序,这对前端来说是非常容易上手的,也有着无与伦比的开发效率和平滑的学习曲线。但是 Electron 也有着天然的短板,比如包体积和 CPU 资源占用较高。
首先安装官网文档上手 https://www.electronjs.org/zh/docs/latest/tutorial/quick-start 按照步骤创建一个electron应用。
在进行yarn add --dev electron
时,经常会遇到安装失败的问题,虽然已经换源但是下载成功率还是不高。(此时我就去尝试了Tauri,下载很流畅)
解决方法:给electron都设置镜像
如果本身npm已经设置淘宝镜像了,electron也是需要设置一下淘宝镜像
给electron设置淘宝镜像
npm config set electron_mirror "https://npmmirror.com/mirrors/electron/"
打开npm的配置文件 npm config edit
registry=https://registry.npmmirror.com
electron_mirror=https://cdn.npmmirror.com/binaries/electron/
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
然后执行 npm cache clean --force
打包问题
使用官方教程推荐的 《使用 Electron Forge 分发应用程序》https://www.electronjs.org/zh/docs/latest/tutorial/%E6%89%93%E5%8C%85%E6%95%99%E7%A8%8B 过程及其坎坷。其中使用pnpm以及yarn安装的forge都存在引用问题,尝试各种办法无果,换用npm安装可以无报错打包。
踩坑yarn安装forge的make包遇到的相关问题,出现了 @electron/fuses
模块不兼容当前版本的 @electron-forge/plugin-fuses
。换用换源之后的npm或者pnpm安装forge相关包,之后再make可以构建成功。
官网用 @electron-forge/cli 坑比较多,只能在issue里慢慢查。
可以尝试使用electron-builder https://github.com/electron-userland/electron-builder
electron项目资源整合
★electron+vue
【GitHub】https://github.com/umbrella22/electron-vue-template #(NoLayOut分支为vite)
【Gitee】https://gitee.com/Zh-Sky/electron-vue-template #(NoLayOut分支为vite)
【Gitee】https://gitee.com/w3cjs/vite-vue2-electron
【GitHub】https://github.com/mlmdflr/xps-electron-vue-template
★electron+react
【GitHub】https://github.com/umbrella22/electron-react-template
【Gitee】https://gitee.com/Zh-Sky/electron-react-template
【GitHub】https://github.com/TaiAiAc/electron-react-template
★electron+vite+vue3
【GitHub】https://github.com/umbrella22/electron-vite-template
【Gitee】https://gitee.com/Zh-Sky/electron-vite-template
【GitHub】https://github.com/hyroge/vite-vue-electron
【GitHub】https://github.com/im-oxygen/vite-template-vue-ts-electron
【Gitee】https://gitee.com/TaiAi/electron-vue3-quiet
【Github】https://github.com/TaiAiAc/electron-vue3-quiet
★electron+原生
【GitHub】https://github.com/youliso/electron-template
★vite-ts-quick
【GitHub】https://github.com/pohunchn/vite-ts-quick
Tauri
Tauri 构建的桌面程序太小了,远不是 Electron.JS 可以相比的,因为它放弃了体积巨大的 Chromium 内核 和 nodejs,前端使用操作系统的 webview,后端集成了 Rust。 Tauri 提供了初始化程序的模板,比如原生js, react, svelte.js, vue.js 等等。
预先准备
首先需要安装 Rust 及其他系统依赖。 https://tauri.app/zh-cn/v1/guides/getting-started/prerequisites
Rust创建项目很友好,只需要按照提示一步一步选择然后运行就好。
打包
yarn tauri build
正常来说会出现警告
解决:Rust crates 国内镜像源加速配置
-
找到当前用户目录下 /Users/baoyachi/.cargo/ 的.cargo 文件夹
-
进入.cargo 当前目录,在当前目下创建 config 文件
-
打开 config 文件,编写以下内容:
[source.crates-io]
# 替换成你偏好的镜像源
replace-with = 'rsproxy'
# 清华大学 5mb
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
# 中国科学技术大学 2mb
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"
# 上海交通大学 2mb
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
# rustcc社区 2mb
[source.rustcc]
registry = "https://crates.rustcc.cn/crates.io-index"
# 字节跳动 10mb
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"打包成功
这次尝试,只是从 web 层,并没有涉及系统 后端,需要学一些 rust 相关的知识。若单纯 web 程序打包,使用 tauri
会更小,若熟悉 node.js api 的还是推荐 electron.js