跳到内容
Tauri

配置文件

由于塔乌里是构建应用程序的工具包,可能需要许多文件来配置项目设置。你可能遇到的一些常见文件包括 tauri.conf.jsonpackage.jsonCargo.toml。我们将在本页简短解释每个文件,以帮助你确定哪些文件需要修改。

塔乌里配置

塔乌里配置用于定义您的 Web 应用程序的来源,描述您的应用程序元数据,配置捆绑包,设置插件配置,通过配置窗口,托盘图标,菜单等方式修改运行时行为。

此文件由塔乌里运行时和塔乌里 CLI 使用。您可以定义构建设置(例如在 在运行 tauri buildtauri dev 之前执行的命令),设置应用程序的 名称版本,控制塔乌里运行时,并配置 插件

支持的格式

默认塔乌里配置格式为 JSON。通过在 Cargo.toml 中添加 config-json5config-toml 功能标志(分别对应),可以启用 JSON5 或 TOML 格式。

Cargo.toml
[build-dependencies]
tauri-build = { version = "2.0.0", features = [ "config-json5" ] }
[dependencies]
tauri = { version = "2.0.0", features = [ "config-json5" ] }

所有格式的结构和值都相同,但是格式应与相应文件的格式保持一致

tauri.conf.json
{
build: {
devUrl: 'https://127.0.0.1:3000',
// start the dev server
beforeDevCommand: 'npm run dev',
},
bundle: {
active: true,
icon: ['icons/app.png'],
},
app: {
windows: [
{
title: 'MyApp',
},
],
},
plugins: {
updater: {
pubkey: 'updater pub key',
endpoints: ['https://my.app.updater/{{target}}/{{current_version}}'],
},
},
}
Tauri.toml
[build]
dev-url = "https://127.0.0.1:3000"
# start the dev server
before-dev-command = "npm run dev"
[bundle]
active = true
icon = ["icons/app.png"]
[[app.windows]]
title = "MyApp"
[plugins.updater]
pubkey = "updater pub key"
endpoints = ["https://my.app.updater/{{target}}/{{current_version}}"]

请注意,JSON5 和 TOML 支持注释,TOML 可以使用短横线命名(kebab-case)来配置名称,这是更习惯的做法。

平台特有的配置

除了默认配置文件外,塔乌里还可以从以下平台特定的配置文件中进行读取:

  • tauri.linux.conf.jsonTauri.linux.toml(Linux)
  • tauri.windows.conf.jsonTauri.windows.toml(Windows)
  • tauri.macos.conf.jsonTauri.macos.toml(macOS)
  • tauri.android.conf.jsonTauri.android.toml(Android)
  • tauri.ios.conf.jsonTauri.ios.toml(iOS)

平台特定的配置文件将按照 JSON Merge Patch(RFC 7396) 规范与主配置对象合并。

例如,给定的以下基本 tauri.conf.json

tauri.conf.json
{
"productName": "MyApp",
"bundle": {
"resources": ["./resources"]
},
"plugins": {
"deep-link": {}
}
}

以及给出的 tauri.linux.conf.json

tauri.linux.conf.json
{
"productName": "my-app",
"bundle": {
"resources": ["./linux-assets"]
},
"plugins": {
"cli": {
"description": "My app",
"subcommands": {
"update": {}
}
},
"deep-link": {}
}
}

Linux 的解析配置将是以下对象

{
"productName": "my-app",
"bundle": {
"resources": ["./linux-assets"]
},
"plugins": {
"cli": {
"description": "My app",
"subcommands": {
"update": {}
}
},
"deep-link": {}
}
}

此外,您可以通过 CLI 提供要合并的配置,有关更多信息,请参阅以下部分。

扩展配置

当运行 devandroid devios devbuildandroid buildios buildbundle 命令之一的 Tauri CLI 允许您扩展 Tauri 配置。--config 参数可以提供一个配置扩展,作为原始 JSON 字符串或 JSON 文件的路径。Tauri 使用的 JSON 合并补丁(RFC 7396) 规范将提供的配置值与最初解析的配置对象合并。

此机制可用于定义应用程序的多个版本或配置应用程序包时具有更大的灵活性。

例如,要分发一个完全孤立的 beta 应用程序,您可以使用此功能配置单独的应用程序名称和标识符

src-tauri/tauri.beta.conf.json
{
"productName": "My App Beta",
"identifier": "com.myorg.myappbeta"
}

要分发此单独的 beta 应用程序,请在构建时提供此配置文件

npm run tauri build -- --config src-tauri/tauri.beta.conf.json

Cargo.toml

Cargo 的清单文件用于声明您的应用程序依赖的 Rust 缩略包、应用程序的元数据以及其他 Rust 相关功能。如果您不打算使用 Rust 为应用程序进行后端开发,那么您可能不会修改它很多,但了解它存在以及它的功能是很重要的。

以下是一个 Tauri 项目的裸骨 Cargo.toml 文件示例

Cargo.toml
[package]
name = "app"
version = "0.1.0"
description = "A Tauri App"
authors = ["you"]
license = ""
repository = ""
default-run = "app"
edition = "2021"
rust-version = "1.57"
[build-dependencies]
tauri-build = { version = "2.0.0" }
[dependencies]
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
tauri = { version = "2.0.0", features = [ ] }

需要注意的是最重要的部分是 tauri-buildtauri 依赖项。通常,它们都必须是最新的次要版本,就像 Tauri CLI 一样,但这不是硬性要求。如果您在尝试运行应用程序时遇到问题,请检查任何 Tauri 版本(tauritauri-cli)是否是各自次要版本的最新版本。

Cargo 版本号使用 语义版本。在 src-tauri 文件夹中运行 cargo update 将获取所有依赖项的最新 Semver 兼容版本。例如,如果您将 tauri-build 的版本指定为 2.0.0,那么 Cargo 将检测并下载版本 2.0.0.0,因为它是最新的 Semver 兼容版本。当引入重大更改时,Tauri 将更新主要版本号,这意味着您可以安全地升级到最新的次要和修补程序版本,而不用担心代码损坏。

如果您想使用特定的包版本,您可以使用精确版本,通过在依赖项的版本号前加 = 来代替。

tauri-build = { version = "=2.0.0.0" }

需要注意的是,tauri 依赖项的 features=[] 部分。运行 tauri devtauri build 将根据您的 Tauri 配置自动管理需要启用的功能。有关 tauri 功能标志的更多信息,请参阅 文档

当您构建应用程序时,将生成一个 Cargo.lock 文件。此文件主要用于确保在开发期间跨机器使用相同的依赖项(类似于 Node.js 中的 yarn.lockpnpm-lock.yamlpackage-lock.json)。建议将此文件提交到源代码库中,以确保构建的一致性。

要了解更多关于货物清单文件的信息,请参考官方文档

package.json

这是Node.js使用的包文件。如果你的Tauri应用程序前端使用基于Node.js的技术(如npmyarnpnpm)开发,则此文件用于配置前端依赖和脚本。

一个裸骨的Tauri项目package.json文件可能看起来像这样:

package.json
{
"scripts": {
"dev": "command to start your app development mode",
"build": "command to build your app frontend",
"tauri": "tauri"
},
"dependencies": {
"@tauri-apps/api": "^2.0.0.0",
"@tauri-apps/cli": "^2.0.0.0"
}
}

通常使用"scripts"部分来存储启动和构建Your Tauri应用程序所使用的前端的命令。上面的package.json文件指定了可以通过使用yarn devnpm run dev来启动前端框架的dev命令,以及可以通过使用yarn buildnpm run build来构建你前端Web资源(由Tauri在生产中添加)的build命令。使用这些脚本的最好方法是使用Tauri CLI通过配置的beforeDevCommandbeforeBuildCommand钩子进行连接。

tauri.conf.json
{
"build": {
"beforeDevCommand": "yarn dev",
"beforeBuildCommand": "yarn build"
}
}

依赖对象指定了当你运行yarnpnpm installnpm install时,Node.js应该下载哪些依赖(在本例中是Tauri CLI和API)。

除了package.json文件外,您可能还会看到yarn.lockpnpm-lock.yamlpackage-lock.json文件。这些文件有助于确保在稍后下载依赖时,您将获得与开发期间相同的精确版本(类似于Rust中的Cargo.lock)。

要了解更多关于package.json文件格式的信息,请参考官方文档


© 2025 Tauri贡献者。CC-BY / MIT