diff --git a/README.md b/README.md index 9f86b63..665c24f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Quick Reference [Chown](./docs/chown.md) [R 语言](./docs/r.md) [Elixir](./docs/elixir.md) -[Tauri](./docs/tauri.md) +[Tauri](./docs/tauri.md) ## 编程 @@ -102,6 +102,7 @@ Quick Reference [React Native](./docs/react-native.md) [RegEx 正则表达式](./docs/regex.md) [TypeScript](./docs/typescript.md) +[Tauri](./docs/tauri.md) [Vue 2](./docs/vue2.md) [Vue 3](./docs/vue.md) [ htmx](./docs/htmx.md) diff --git a/assets/tauri.svg b/assets/tauri.svg new file mode 100644 index 0000000..62ac7d6 --- /dev/null +++ b/assets/tauri.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/tauri.md b/docs/tauri.md index 5bd24ce..016556f 100644 --- a/docs/tauri.md +++ b/docs/tauri.md @@ -3,20 +3,278 @@ tauri 备忘清单 这个 [tauri](https://tauri.app/) 快速参考备忘单显示了它的常用命令使用清单 -常用命令 ----- - -命令 | 描述 -:- |:- -`npm create tauri-app@latest` | 创建一个新项目 -`npm install` | 安装依赖 -`npm run tauri dev` | 应用预览 +入门 +--- + +### 快速开始 + + +Bash + +```bash +sh <(curl https://create.tauri.app/sh) +``` + +PowerShell + +```bash +C:\> irm https://create.tauri.app/ps | iex +``` + +Cargo + +```bash +$ cargo install create-tauri-app --locked +$ cargo create-tauri-app +``` + +npm/yarn/pnpm/bunx + +```bash +$ npm create tauri-app@latest +$ yarn create tauri-app +$ pnpm create tauri-app +$ bunx create-tauri-app +``` + +#### 依赖环境 -依赖环境 ----- - 软件 | 描述 :- |:- [rust](https://www.rust-lang.org/tools/install)| rust安装 [nodejs](https://nodejs.org/en)| nodejs安装 -[Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/)| Microsoft C++ 生成工具 (for windows) \ No newline at end of file +[Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/)| Microsoft C++ 生成工具 (for windows) + +### 启动 Tauri 开发窗口 + +```bash +$ npm run tauri dev +$ yarn tauri dev +$ pnpm tauri dev +$ bunx tauri dev +$ cargo tauri dev +``` + +### 检测最新版本的 Tauri + +```bash +$ npm outdated @tauri-apps/cli +$ yarn outdated @tauri-apps/cli +$ pnpm add -D @tauri-apps/cli +$ npm outdated @tauri-apps/cli +``` + +### 更新 npm 包 + + +```bash +$ npm install @tauri-apps/cli@latest @tauri-apps/api@latest +$ yarn upgrade @tauri-apps/cli @tauri-apps/api --latest +$ yarn up @tauri-apps/cli @tauri-apps/api +$ pnpm update @tauri-apps/cli @tauri-apps/api --latest +$ bun update @tauri-apps/cli @tauri-apps/api +``` + +### 更新 Cargo 包 + +打开 `src-tauri/Cargo.toml` 并更改 `tauri` 和 `tauri-build` + +```ini +[build-dependencies] +tauri-build = "%version%" + +[dependencies] +tauri = { version = "%version%" } +``` + +其中 `%version%` 是上面相应的版本号 + +```bash +$ cd src-tauri +$ cargo update +``` + +### 应用程序调试 + +代码中输出日志方法 + +```rust +println!("Message from Rust: {}", msg); +``` + +在 Linux 和 macOS 上通过下面命令重新运行 + +```bash +RUST_BACKTRACE=1 tauri dev +``` + +Window 上这样开启 + +```bash +set RUST_BACKTRACE=1 +tauri dev +``` + +### 以编程方式打开 Devtools + + +```rust +use tauri::Manager; +tauri::Builder::default() + .setup(|app| { + #[cfg(debug_assertions)] // 仅在调试构建时包含此代码 + { + let window = app.get_window("main").unwrap(); + window.open_devtools(); + window.close_devtools(); + } + Ok(()) + }); +``` + +### 在生产中使用检查器 + +```bash +$ npm run tauri build -- --debug +$ yarn tauri build --debug +$ pnpm tauri build --debug +$ bunx tauri build --debug +$ cargo tauri build --debug +``` + +### 启用开发工具功能 + + +```ini +[dependencies] +tauri = { version = "...", features = ["...", "devtools"] } +``` + +在文件 `src-tauri/Cargo.toml` 中启用 `devtools Cargo` 功能 + +配置 +--- + +### 配置结构 + + +默认配置 `tauri.conf.json`,还支持 `tauri.conf.json5` 和 `Tauri.toml` + +-- | -- +:--- | --- +`package` | 包设置 +`tauri` | Tauri 配置 +`build` | 构建配置 +`plugins` | 插件配置 + +下面配置能与主配置进行合并 + +- `tauri.linux.conf.json` 或 `Tauri.linux.conf.toml` +- `tauri.windows.conf.json` 或 `Tauri.windows.conf.toml` +- `tauri.macos.conf.json` 或 `Tauri.macos.conf.toml` + +示例 + +```json +{ + "build": { ... }, + "package": { ... }, + "tauri": { ... } +} +``` + +### Tauri 配置 + + +配置 | Type | 描述 +:--- | --- | --- +`pattern` | [PatternKind](#patternkind) | 应用程序名称 +`version` | [WindowConfig\[\]](#windowconfig) | 应用程序版本 +`cli` | [CliConfig](#cliconfig) | CLI 配置 +`bundle` | BundleConfig | 打包器配置 +`allowlist` | AllowlistConfig | 允许列表配置 +`security` | SecurityConfig | 安全配置 +`updater` | UpdaterConfig | 更新程序配置 +`systemTray` | [SystemTrayConfig](#systemtrayconfig) | 配置应用系统托盘 +`macOSPrivateApi` | boolean | macOS 私有API配置 + + +### CliConfig + + +配置 | Type | 描述 +:--- | --- | --- +`description` | string? | 将显示在帮助信息中 +`longDescription` | string? | 将显示在帮助信息中 +`beforeHelp` | string? | 该信息显示在自动生成的帮助信息之前。这通常用于标题信息 +`afterHelp` | string? | 显示在自动生成的帮助信息之后。通常用于描述如何使用参数,或者需要注意的注意事项 +`args` | array? | 命令的参数列表 +`subcommands` | object? | 该命令的子命令列表 + + +描述 CLI 配置 + +### Package 配置 + +配置 | 描述 +:--- | --- +`productName` | 应用程序名称 +`version` | 应用程序版本 + +### WindowConfig + + +窗口配置对象 + +配置 | Type | 默认值 | 描述 +:--- | --- | --- | --- +`label` | string | null | 窗口标识符 +`url` | [WindowUrl](#windowurl) | view | 窗口的 webview URL +`userAgent` | userAgent? | null | webview 的用户代理 +`fileDropEnabled` | boolean | true | 是否在 Web 视图上启用文件放置 +`center` | boolean | false | 窗口是否开始居中 +`x` | number? | null | 窗口左上角的水平位置 +`y` | number? | null | 窗口左上角的水平位置 +`width` | number | 800 | 窗口宽度 +`height` | number | 600 | 窗口高度 +`minWidth` | number | null | 最小窗口宽度 +`minHeight` | number | null | 最小窗口高度 + +### PatternKind + +应用模式。可以是以下类型中的任意一种: + +#### 棕地模式 + +```json +{ "use": "brownfield" } +``` + +#### 隔离模式。建议出于安全目的 + +```json +{ + "use": "isolation", + "options": { "dir": string } +} +``` + +### WindowUrl + +要在 Tauri Web 视图窗口中打开的 URL。可以是以下任何一种类型: + +- `string` (format: `uri`):外部 URL。 +- `string`:应用程序 URL 的路径部分。例如,要加载 `tauri://localhost/users/john`,只需在此配置中提供 `users/john` + +### SystemTrayConfig + + +配置 | Type | 默认值 | 描述 +:--- | --- | --- | --- +`iconPath` | string(必填) | null | 系统托盘上使用的默认图标的路径 +`iconAsTemplate` | boolean | false | 用于确定图像是否代表 macOS 上的[模板](https://developer.apple.com/documentation/appkit/nsimage/1520017-template?language=objc)图像 +`menuOnLeftClick` | boolean | true | 确定在 macOS 上托盘图标收到左键点击时菜单是否应该出现 +`title` | string? | null | MacOS 托盘标题 + + +应用程序系统托盘图标的配置