配置文件
由于 Tauri 是一个用于构建应用程序的工具包,因此可能有很多文件需要配置项目设置。您可能会遇到一些常见的文件,例如 tauri.conf.json
、package.json
和 Cargo.toml
。我们在此页面上简要解释每个文件,以帮助您找到修改哪些文件的正确方向。
Tauri 配置
Tauri 配置用于定义 Web 应用程序的来源、描述应用程序的元数据、配置捆绑包、设置插件配置、通过配置窗口、托盘图标、菜单等来修改运行时行为。
此文件供 Tauri 运行时和 Tauri CLI 使用。您可以定义构建设置(例如在 tauri build
或 tauri dev
启动之前运行的命令),设置应用程序的名称和版本,控制 Tauri 运行时,以及配置插件。
支持的格式
默认的 Tauri 配置格式是 JSON。可以通过将 config-json5
或 config-toml
功能标志(分别)添加到 Cargo.toml
中的 tauri
和 tauri-build
依赖项来启用 JSON5 或 TOML 格式。
[build-dependencies]tauri-build = { version = "2.0.0", features = [ "config-json5" ] }
[dependencies]tauri = { version = "2.0.0", features = [ "config-json5" ] }
所有格式的结构和值都相同,但是,格式应与相应文件的格式保持一致
{ build: { devUrl: 'http://localhost: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}}'], }, },}
[build]dev-url = "http://localhost:3000"# start the dev serverbefore-dev-command = "npm run dev"
[bundle]active = trueicon = ["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 还可以从以下位置读取特定于平台的配置
tauri.linux.conf.json
或Tauri.linux.toml
用于 Linuxtauri.windows.conf.json
或Tauri.windows.toml
用于 Windowstauri.macos.conf.json
或Tauri.macos.toml
用于 macOStauri.android.conf.json
或Tauri.android.toml
用于 Androidtauri.ios.conf.json
或Tauri.ios.toml
用于 iOS
平台特定的配置文件与主配置对象合并,遵循 JSON Merge Patch (RFC 7396) 规范。
例如,给定以下基本 tauri.conf.json
{ "productName": "MyApp", "bundle": { "resources": ["./resources"] }, "plugins": { "deep-link": {} }}
以及给定的 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 提供要合并的配置,请参阅以下部分以获取更多信息。
扩展配置
当运行 dev
、android dev
、ios dev
、build
、android build
、ios build
或 bundle
命令之一时,Tauri CLI 允许您扩展 Tauri 配置。配置扩展可以通过 --config
参数提供,可以是原始 JSON 字符串,也可以是 JSON 文件的路径。Tauri 使用 JSON Merge Patch (RFC 7396) 规范将提供的配置值与最初解析的配置对象合并。
此机制可用于定义应用程序的多个风格,或在配置应用程序捆绑包时具有更大的灵活性。
例如,要分发完全隔离的beta应用程序,您可以使用此功能来配置单独的应用程序名称和标识符
{ "productName": "My App Beta", "identifier": "com.myorg.myappbeta"}
要分发此单独的 beta 应用程序,您可以在构建时提供此配置文件
npm run tauri build -- --config src-tauri/tauri.beta.conf.json
yarn tauri build --config src-tauri/tauri.beta.conf.json
pnpm tauri build --config src-tauri/tauri.beta.conf.json
deno task tauri build --config src-tauri/tauri.beta.conf.json
bun tauri build --config src-tauri/tauri.beta.conf.json
cargo tauri build --config src-tauri/tauri.beta.conf.json
Cargo.toml
Cargo 的清单文件用于声明您的应用程序依赖的 Rust crate、关于您的应用程序的元数据以及其他与 Rust 相关的功能。如果您不打算为您的应用程序使用 Rust 进行后端开发,那么您可能不会经常修改它,但重要的是要知道它的存在以及它的作用。
以下是 Tauri 项目的精简版 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-build
和 tauri
依赖项。通常,它们都必须与 Tauri CLI 处于最新的次要版本,但这并非严格要求。如果您在尝试运行应用程序时遇到问题,则应检查任何 Tauri 版本(tauri
和 tauri-cli
)是否为其各自的次要版本发布了最新版本。
Cargo 版本号使用 语义版本控制。在 src-tauri
文件夹中运行 cargo update
将拉取所有依赖项的最新可用 Semver 兼容版本。例如,如果您将 2.0.0
指定为 tauri-build
的版本,Cargo 将检测并下载版本 2.0.0.0
,因为它是可用的最新 Semver 兼容版本。每当引入重大更改时,Tauri 都会更新主要版本号,这意味着您应该始终能够安全地升级到最新的次要版本和补丁版本,而不用担心代码会中断。
如果您想使用特定的 crate 版本,您可以使用精确版本,方法是在依赖项的版本号前加上 =
tauri-build = { version = "=2.0.0" }
另一个需要注意的事情是 tauri
依赖项的 features=[]
部分。运行 tauri dev
和 tauri build
将自动管理您的项目中需要启用哪些功能,这取决于您的 Tauri 配置。有关 tauri
功能标志的更多信息,请参阅文档。
当您构建应用程序时,会生成 Cargo.lock
文件。此文件主要用于确保在开发期间跨机器使用相同的依赖项(类似于 Node.js 中的 yarn.lock
、pnpm-lock.yaml
或 package-lock.json
)。建议将此文件提交到您的源代码存储库,以便获得一致的构建。
要了解有关 Cargo 清单文件的更多信息,请参阅官方文档。
package.json
这是 Node.js 使用的包文件。如果您的 Tauri 应用程序的前端是使用基于 Node.js 的技术(例如 npm
、yarn
或 pnpm
)开发的,则此文件用于配置前端依赖项和脚本。
Tauri 项目的精简版 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"
部分来存储用于启动和构建 Tauri 应用程序使用的前端的命令。上面的 package.json
文件指定了 dev
命令,您可以使用 yarn dev
或 npm run dev
运行该命令来启动前端框架,以及 build
命令,您可以使用 yarn build
或 npm run build
运行该命令来构建前端的 Web 资源,以便在生产环境中由 Tauri 添加。使用这些脚本最方便的方法是通过 Tauri 配置的 beforeDevCommand 和 beforeBuildCommand 钩子将它们与 Tauri CLI 连接起来
{ "build": { "beforeDevCommand": "yarn dev", "beforeBuildCommand": "yarn build" }}
dependencies 对象指定当您运行 yarn
、pnpm install
或 npm install
时 Node.js 应下载哪些依赖项(在本例中为 Tauri CLI 和 API)。
除了 package.json
文件外,您可能会看到 yarn.lock
、pnpm-lock.yaml
或 package-lock.json
文件。这些文件有助于确保您稍后下载依赖项时,将获得与开发期间使用的完全相同的版本(类似于 Rust 中的 Cargo.lock
)。
要了解有关 package.json
文件格式的更多信息,请参阅官方文档。
© 2025 Tauri 贡献者。 CC-BY / MIT