Tauri 开发实践 — Tauri 配置介绍

简介: 本文首发于微信公众号“前端徐徐”,主要讲解`package.json`、`Cargo.toml`及`tauri.conf.json`三个文件的配置。其中,`tauri.conf.json`最为复杂,涉及众多配置项。`package.json`用于配置前端依赖与脚本;`Cargo.toml`用于声明Rust应用依赖;`tauri.conf.json`则管理前端资源、API白名单等。这些配置对于Tauri应用的开发至关重要。

本文首发微信公众号:前端徐徐。

这里主要是讲解一下 package.json 、Cargo.toml、tauri.conf.json这三个文件的配置。其中tauri.conf.json最为复杂,配置项非常多。

package.json

这是Node.js使用的软件包文件。 如果使用节点开发了Tauri应用的前端。 基于node.js的技术(例如 npm, yarn, 或者 pnpm) 此文件用于配置前端依赖关系和脚本。

一个 Tauri 项目的 package.json 文件的示例可能看起来像这样一些东西:

{
  "scripts": {
    "dev": "command-for-your-framework", # 您的框架命令
    "tauri": "tauri"
  },
  "dependencies": {
    "@tauri-apps/api": "^1.0",
    "@tauri-apps/cli": "^1.0"
  }
}

通常使用 "scripts" 部分来存储用于启动您的 Tauri 应用程序所使用的前端的命令,这个跟传统的前端项目的配置几乎没有什么差别。

Cargo.toml

Cargo 清单文件用于声明您的应用程序依赖、应用元数据和其他 Rust 相关功能。 若您不需要 Rust 进行原生开发,您可能不需要修改此文件。但了解它的存在意义及其功能还是很重要的。

[package]
name = "xtools"
version = "0.0.0"
description = "A Tauri App"
authors = ["you"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
tauri-build = { version = "1", features = [] }
[dependencies]
tauri = { version = "1", features = ["shell-open"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[features]
# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!
custom-protocol = ["tauri/custom-protocol"]

需要注意的最重要部分是 tauri-build 和 tauri 依赖项。通常,它们都必须与 Tauri CLI 保持最新的次要版本,但这不是绝对必要的。如果您在运行应用程序时遇到问题,您应该检查 tauri 和 tauri-cli 是否为最新的次要版本。

Cargo 版本号使用语义化版本(SemVer)控制。运行 cargo update 命令将拉取最新可用的语义版本依赖项。例如,如果您将 tauri-build 的版本指定为 1.0.0,Cargo 将检测并下载版本 1.0.4,因为它是最新的兼容语义版本。当出现重大更改时,Tauri 将更新主版本号。您可以安全地升级到最新的次要版本和补丁版本,而无需担心代码中会有破坏性更改。

如果您想使用特定的crate版本,可以在依赖项的版本号前加上 = 来使用确切的版本:

Copy code
tauri-build = { version = "=1.0.0" }

另一个需要注意的是 tauri 依赖项中的 features=[] 部分。执行 tauri devtauri build 时,会根据您在 tauri.conf.json 中的 "allowlist" 属性自动启用所需的功能。

当您构建应用程序时,会生成 Cargo.lock 文件。这个文件主要用于确保在开发过程中跨机器使用相同的依赖项(类似于 Node.js 中的 yarn.lock 或 package-lock.json)。由于您正在开发一个 Tauri 应用程序,这个文件应该提交到您的源代码存储库(只有 Rust 库才应该忽略提交此文件)。

tauri.conf.json

Tauri 配置的默认格式为 .json。 对 .json5 或 .toml 格式的支持可通过在 Cargo.toml 的 tauri 和 tauri-build 依赖中分别添加 config-json5 或 config-toml 的方式开启。

Tauri配置对象。它从一个文件中读取,您可以在其中定义前端资源、配置捆绑器、启用应用程序更新器、定义系统托盘、通过允许列表启用API等。

配置文件由位于Tauri应用程序源目录(src-tauri)中的tauri init命令生成。

生成后,您可以随意修改它来定制您的Tauri应用程序。

文件格式 默认情况下,配置被定义为名为tauri.conf.json的JSON文件。

Tauri还支持通过config-json5config-toml Cargo特性分别使用JSON5和TOML文件。JSON5文件名必须为tauri.conf.jsontauri.conf.json5。TOML文件名为Tauri.toml

平台特定配置 除了默认配置文件外,Tauri还可以从tauri.linux.conf.jsontauri.windows.conf.jsontauri.macos.conf.json(或者如果使用Tauri.toml格式,则为Tauri.linux.tomlTauri.windows.tomlTauri.macos.toml)读取平台特定配置,该配置将与主配置对象合并。

配置结构 配置由以下对象组成:

  • package: 包设置
  • tauri: Tauri配置
  • build: 构建配置
  • plugins: 插件配置

下面是初始化项目的配置相关解释,有更加详细的配置可参考:https://tauri.app/v1/api/config/

{
  "build": {
    // 在开发模式下运行的命令,比如启动开发服务器
    "beforeDevCommand": "pnpm dev",
    // 在构建生产版本之前运行的命令,比如构建前端资源
    "beforeBuildCommand": "pnpm build",
    // 开发模式下前端资源的路径,可以是文件路径或URL
    "devPath": "http://localhost:1420",
    // 构建后生成的前端资源目录
    "distDir": "../dist"
  },
  "package": {
    // 应用程序名称
    "productName": "XTools",
    // 应用程序版本号
    "version": "0.0.0"
  },
  "tauri": {
    "allowlist": {
      // 是否允许所有APIs,false则必须单独列出
      "all": false,
      // 配置shell API权限
      "shell": {
        "all": false,
        // 允许使用shell.open API
        "open": true
      }
    },
    // 应用程序主窗口配置
    "windows": [
      {
        "title": "XTools",
        "width": 800,
        "height": 600
      }
    ],
    // 安全设置
    "security": {
      "csp": null
    },
    // 应用程序打包配置
    "bundle": {
      "active": true, // 是否进行打包
      "targets": "all", // 生成所有目标平台的安装包
      "identifier": "com.xtool", // 应用程序bundleId
      // 应用程序图标文件
      "icon": [
        "icons/32x32.png",
        "icons/128x128.png",
        "icons/128x128@2x.png",
        "icons/icon.icns",
        "icons/icon.ico"
      ]
    }
  }
}

由于配置项非常多,在开发的时候可能会根据不同场景然后修改相应的配置,在后面的实践章节会修改一些配置来配合我们的项目。

相关文章
|
JavaScript
源码学习:Vite中加载环境变量(loadEnv)的实现
源码学习:Vite中加载环境变量(loadEnv)的实现
8066 0
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
1145 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
前端开发 算法 API
直接在前端做 zip 压缩/解压
前段时间研究前端是如何解析 excel 表格的时候了解到 jszip 这个库,可以直接在前端对 zip 包进行压缩和解压缩,今天稍微水一篇。
|
JSON 自然语言处理 数据格式
Tauri 开发实践 — Tauri 自定义多语言菜单开发
本文介绍了如何在 Tauri 应用中实现自定义菜单并支持多语言。首先,通过 `Translator` 类加载和解析多语言 JSON 文件,实现简单的翻译功能。接着,创建包含文件、编辑和窗口子菜单的基本菜单结构,并根据当前语言进行翻译。最后,在主函数中读取语言设置,创建菜单并处理菜单事件,确保应用的国际化和用户体验。源码可在 GitHub 上查看。
818 2
|
Rust 前端开发 API
Tauri 开发实践 — Tauri HTTP 请求开发
本文介绍了如何在 Tauri 中发起 HTTP 请求。首先通过安装 Tauri 生态中的工具包并配置 `tauri.conf.json` 文件来允许特定域名的 HTTP 通信。接着封装了一个简单的 HTTP 客户端类,并在页面中使用该客户端实现 GET 和 POST 请求。最后提供了完整的源码地址以供参考。此功能使得桌面应用能够与远程服务器进行交互,增强了应用的实用性。
1360 1
Tauri 开发实践 — Tauri HTTP 请求开发
|
10月前
|
Rust 安全 前端开发
Github 轻松斩获30k+ Star,桌面应用开发太丝滑啦,Tauri框架能重塑桌面App开发?别错过,抓紧上车
Tauri 是一个基于 Rust 的开源框架,用于构建轻量级、高性能、安全的跨平台桌面及移动应用。它利用系统 WebView 渲染前端界面,后端由 Rust 编写,具备出色的性能和安全性。相比 Electron,Tauri 应用体积更小、启动更快,且默认权限更安全。它支持 React、Vue、Svelte 等主流前端框架,并提供自动更新、CLI 工具链、资源注入优化等功能,适用于生产力工具、开发者工具、数据分析、AI 应用等多种场景。目前 Tauri 在 GitHub 上已获得超过 30,000 Star,社区活跃,是现代桌面应用开发的理想选择。
1431 0
|
Rust 前端开发 jenkins
Tauri 开发实践 — 使用 CI/CD 自动构建发布 Tauri 桌面端应用
本文介绍如何使用 CI/CD 自动构建发布 Tauri 应用。Tauri 是一个轻量级跨平台客户端框架,适合个人应用。文章首先概述了 CI/CD 的基本流程,并介绍了 GitHub Actions、GitLab CI 和 Jenkins 三种工具。最终选择了 GitHub Actions 进行配置。文中详细展示了使用 GitHub Actions 脚本实现 Tauri 应用构建的过程,并解决了权限和安全问题。项目源码可在 GitHub 上获取。
1330 5
Tauri 开发实践 — 使用 CI/CD 自动构建发布 Tauri 桌面端应用
|
存储 JavaScript 前端开发
JS上传文件(base64字符串和二进制文件流)
这篇文章介绍了两种JavaScript文件上传的方法:使用FileReader对象将文件读取为base64字符串上传,以及使用FormData对象以二进制文件流的形式上传文件,包括如何处理文件选择、读取和上传的详细代码示例。
1751 2
JS上传文件(base64字符串和二进制文件流)
|
资源调度 运维 JavaScript
使用electron创建桌面应用及常见打包错误解决
使用electron创建桌面应用及常见打包错误解决
2225 3
|
前端开发 安全 Android开发
跨平台开发的新纪元:Tauri 2.0 横空出世,移动端、桌面端一网打尽!
Tauri 2.0 正式版于 2024 年 10 月 2 日发布,带来了多项重大更新。此次更新不仅全面支持 iOS 和 Android,实现“一次编写,到处运行”,还升级了插件系统,增强了灵活性与可扩展性。安全性大幅提升,引入新的权限系统,并优化了 IPC 层,支持原始有效载荷传输,大幅提高性能。此外,Tauri 2.0 还支持热模块替换(HMR),简化了应用分发流程,成为跨平台开发的重要里程碑。
3027 0
跨平台开发的新纪元:Tauri 2.0 横空出世,移动端、桌面端一网打尽!