Tauri
Tauri 是比 Electron 更轻量的框架,可以将 Web 应用打包为非常轻量的桌面应用。Tauri 不支持带后端服务的网页。
以下是将 Next.js 的静态网页项目转换为 Windows 客户端的示步骤:
环境部署: 执行以下命令安装 Tauri CLI。然后手动安装 Rust,重启终端后生效。
npm install -g @tauri-apps/cli@next
初始化 Tauri 项目: 在你的 Next.js 项目根目录下运行以下命令初始化 Tauri:
npx tauri init
配置 Tauri: 在
src-tauri/tauri.conf.json
中修改项目信息,并将distDir
为 Next.js 构建的输出目录,例如:"build": { "distDir": "../out", "devPath": "http://localhost:3000" }
更多配置选项见 Tauri Configuration。
构建 Next.js 并启动 Tauri: 按 Tauri 样例 修改 next.conf.mjs 配置,然后运行以下命令打包你的项目:
npx tauri build
进阶设置
发布应用时,我一般只会修改 package.json。但 tauri 的版本好不能使用变量,因此我会在 src-tauri 中新建 update-version.js 用于同步最新的版本号。
const fs = require("fs");
const path = require("path");
// 定位到项目根目录下的 package.json
const packageJsonPath = path.resolve(__dirname, "../package.json");
const tauriConfigPath = path.resolve(__dirname, "tauri.conf.json");
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
const tauriConfig = JSON.parse(fs.readFileSync(tauriConfigPath, "utf8"));
// 更新 tauri.conf.json 中的 version
tauriConfig.version = packageJson.version;
// 写入更新后的 tauri.conf.json
fs.writeFileSync(tauriConfigPath, JSON.stringify(tauriConfig, null, 2), "utf8");
console.log(`Updated tauri.conf.json with version ${packageJson.version}`);
在线更新
查看 Tauri update 教程为 Tauri 应用添加版本更新功能,参考以下步骤:
执行
npx tauri add updater
安装 updater 插件。使用
npx tauri signer generate -w src-tauri/private.key
生成密钥对。这样,私钥保存在src-tauri/private.key
,然后我们手动将公钥private.key.pub
保存在src-tauri/tauri.conf.json
中的 pubkey 中。将密钥保存在环境中:
# Windows: powershell 中设置上方生成的密钥和设置的密码(密码可空) $env:TAURI_SIGNING_PRIVATE_KEY="Path or content of your private key" <# optionally also add a password #> $env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD="" # Mac/Linux export TAURI_SIGNING_PRIVATE_KEY="Path or content of your private key" # optionally also add a password export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=""
执行
npx tauri build
就可以在本地进行打包。不过在 Github Action 中会不断对环境变量报错,之后再进行调整。
多平台打包
如果你希望多平台打包,可以参考 Tauri Github Action 代码。另外,如果你使用的是 rc2,需要在 package.json 上添加 @tauri-apps/cli@next
,否则 action 会默认安装 v1 的稳定版,等 v2 成为稳定板后,可以移除这个依赖。
以下是各个文件的下载说明:
- Windows:适用于 Windows 系统,请选择
.exe
或.msi
文件。 - Mac(Intel 版本):适用于 Intel 处理器的 Mac,请选择
.dmg
或.app.tar.gz
文件。 - Mac(Apple Silicon 版本,如 M1/M2):适用于 Apple Silicon 处理器的 Mac,请选择
aarch64.dmg
或aarch64.app.tar.gz
文件。 - Linux(Debian/Ubuntu):适用于 Debian/Ubuntu 系统,请选择
.deb
文件。 - Linux(通用版本):适用于其他 Linux 发行版,请选择
.AppImage
或.rpm
文件。
- 0
- 0
- 0
- 0
- 0