tauri-可替换electron的PC端SPA框架(两种把前端JS代码⽣成
exe⽂件的框架)
最近意外发现了这个框架,从这框架的说明和我的实践来看,确实是以后 PC 端的主流框架, ⼤家都知道 electron 的唯⼆缺点: 1. 性能较差 2.包的尺⼨太⼤.下⾯给出使⽤ tauri 的理由
tauri 介绍
以下介绍来⾃官⽅说明:
为什么使⽤ tauri
原始Tauri应⽤程序的打包⼤⼩⼩于3 MB,⽐Electron的⼤⼩⼩140 MB。
内存占⽤⼩于使⽤相同代码库构建的Electron应⽤程序的⼤⼩的⼀半。
安全是Tauri的头等⼤事,我们正在不断创新。
遗憾的是,底层是 Chromium 的使⽤者(例如Electron)⽆法获得 FLOSS(⾃由/开源软件) 许可。资料来源:
技术细节
tauri 具有五个主要组成部分:
⽤于创建,开发和构建应⽤程序的Node.js CLI
Rust Core,⽤于绑定到底层WEBVIEW并提供可摇树优化的API
Rust Bundler⽤于制造最终的⼆进制⽂件
Webview的Rust绑定
Webview低层库,⽤于创建和与操作系统“本机” Webview交互
Tauri应⽤程序中的⽤户界⾯⽬前在macOS上使⽤Cocoa / WebKit,在Linux上使⽤gtk-webkit2,在Windows上通过Edge使⽤MSHTML(IE10 / 11)或Webkit。 Tauri基于MIT许可的进⾏⼯作,即webview。
tauri 与 electron 的对⽐
Tauri Electron
MacOS 的包⼤⼩0.6 MB47.7 MB
MacOS 的内存消耗13 MB34.1 MB
接⼝服务提供Varies Chromium
后台绑定Rust Node.js (ECMAScript)
底层引擎C/C++V8 (C/C++)
⾃由/开源软件Yes No
多线程Yes No
字节码传递Yes No
可以显⽰PDF Yes No
多窗⼝Soon Yes
GPU 访问Yes Yes
⾃动更新Soon Yes (1)
跨平台Yes Yes
⾃定义 APP 图标Yes Yes
Windows 包Yes Yes
MacOS 包Yes Yes
Linux 包Yes Yes
iOS 包Soon No
Android 包Soon No
⽀持本地 web 服务Yes Yes
没有本地服务选项Yes No
桌⾯⽂件盒Soon No
Notes
1. Electron在Linux上没有本地⾃动更新程序,但由electron-packager提供
环境搭建
以下为 macOS 为例⼦, 其他的环境可以查看原⽂档
Tauri是⼀个多语⾔系统,因此需要⼤量⼯具。
系统依赖项:
$ brew install gcc
使⽤ brew 下载 gcc 依赖
node 运⾏环境:
此框架的运⾏需要 node 12 以上的环境:
nvm install 12
nvm use 12
使⽤ nvm 下载 node 12
Rustc and Cargo 包管理
$ curl --proto '=https' --tlsv1.2 -sSf sh.rustup.rs | sh
这条命令时需要梯⼦才能下好的
下载的时候⼀路回车即可
完成后,关闭终端,打开后查看
grewer@Grewer-2 ~ % rustc --version
rustc 1.42.0 (b8cedc004 2020-03-09)
Tauri 打包⼯具
$ cargo install tauri-bundler --force
此命令的下载也建议使⽤梯⼦,不然会⽐较慢
⾄此, 此框架的基础环境都已经搭建完成
使⽤(⽆缝融合进现有的项⽬)
⾸先你需要⼀个 web 项⽬, 可以是 react-create-app 或者 vue-cli 创建的项⽬,也可以是任意的 web 项⽬在项⽬中下载 tauri:
yarn add tauri
# 或者
npm install tauri
下载完成后,在当前项⽬的⽬录下,使⽤命令
tauri init
之后, 你的项⽬下会出现⼀个⽬录src-tauri:
再根据你的 web 项⽬启动时的端⼝修改⽂件f.json:
"build": {
"distDir": "../build", //打包后的路径
"devPath": "localhost:8080", // 此为 dev 启动时的url
"beforeDevCommand": "",
"beforeBuildCommand": ""
web下载官方下载},
现在启动项⽬:
"dev": "tauri dev",
第⼀次启动的时候会有点慢,要加载⼀些东西,后⾯就快了很多了
这⾥我留下我的 demo:
总结
从上述情况来看,这确实是⼀个潜⼒更加⼤的 PC 框架,但是现在(时间点:2020-04-27)的缺点也明显,就是还不够成熟
所以现在实验性的 PC 项⽬可以使⽤,但是想在⽣产环境使⽤,还需要在等等2021-5-19 更新

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。