人人都会AI编程

2.5 核心配置文件 tauri.conf.json 结构与基础配置

更新时间:2026-07-11

tauri.conf.json 是 Tauri 应用的“总控制中心”,所有关于窗口行为、安全权限、构建参数、插件配置都在这里集中管理。一个刚刚初始化的项目,这个文件就已经包含了一套可运行的默认值,你只需要按需调整即可。下面拆解它的核心结构,并说明每个部分真正影响什么。


文件整体骨架

一个典型的 Tauri 2.x 配置文件长这样(简化版):

{
  "$schema": "https://raw.githubusercontent.com/nicedoc/just-be/main/app_schema.json",
  "productName": "my-app",
  "version": "0.1.0",
  "identifier": "com.example.my-app",
  "build": {
    "frontendDist": "../dist",
    "devUrl": "http://localhost:1420",
    "beforeBuildCommand": "npm run build",
    "beforeDevCommand": "npm run dev"
  },
  "app": {
    "windows": [
      {
        "title": "My App",
        "width": 800,
        "height": 600
      }
    ],
    "security": {
      "csp": null
    }
  },
  "bundle": {
    "active": true,
    "targets": "all",
    "icon": [
      "icons/32x32.png",
      "icons/128x128.png",
      "icons/128x128@2x.png",
      "icons/icon.icns",
      "icons/icon.ico"
    ]
  }
}

下面逐一拆解这些顶层字段。


1. 基础身份信息

"productName": "my-app",
"version": "0.1.0",
"identifier": "com.example.my-app"
  • productName:最终生成的二进制文件名(如 my-app.exe)和菜单栏显示的名称。
  • version:应用版本号,会同步写入各平台安装包的元数据。
  • identifier:反向域名格式的唯一标识,用于系统级的应用识别(macOS 的 Bundle Identifier、Windows 的 AppUserModelID、Linux 的 Desktop Entry)。必须反向域名格式,否则打包可能报错。

2. build — 前端构建与开发服务器

"build": {
  "frontendDist": "../dist",
  "devUrl": "http://localhost:1420",
  "beforeBuildCommand": "npm run build",
  "beforeDevCommand": "npm run dev"
}
  • frontendDist:生产构建时,Tauri 会从这个目录读取前端静态文件。路径相对于 src-tauri 目录,通常指向前端框架输出目录(如 ../dist)。
  • devUrl:开发模式下打开的前端地址,一般是你本地的 dev server 地址。Tauri 会直接连接这个 URL,而不是读取本地文件,所以支持热更新。
  • beforeBuildCommand / beforeDevCommand:在执行 tauri buildtauri dev 之前自动运行的命令。前者通常执行前端生产构建,后者启动开发服务器。如果不指定,Tauri 会跳过,你需要手动处理。

3. app — 应用窗口与安全策略

这是配置的核心部分,所有窗口行为和权限都在这里定义。

3.1 窗口配置 windows

"windows": [
  {
    "title": "My App",
    "width": 800,
    "height": 600,
    "resizable": true,
    "fullscreen": false,
    "decorations": true
  }
]
  • windows 是一个数组,可以定义多个窗口。
  • 常用参数:窗口标题、初始尺寸、是否可调整大小、是否启用系统窗口装饰(标题栏和边框)、是否全屏启动。
  • 还可以设置最小/最大尺寸、透明背景、置顶、跳过分栏等。这些配置直接映射到操作系统窗口管理器。

3.2 安全策略 security

"security": {
  "csp": "default-src 'self'; script-src 'self'"
}
  • csp:内容安全策略(Content Security Policy),限制 WebView 能加载哪些资源。未设置时默认为 null(不限制),但强烈建议手动指定。例如只允许加载同源脚本和样式。这可以在前端被攻击时大幅缩小损害范围。
  • 其他与安全相关的配置(如 dangerousRemoteDomainIpcAccess)可以在需要时查阅文档按需开启,默认都是最严格的限制。

4. bundle — 打包与分发配置

"bundle": {
  "active": true,
  "targets": "all",
  "icon": ["icons/32x32.png", "icons/128x128.png", ...]
}
  • active:是否启用打包功能(通常保持 true)。
  • targets:打包格式。可以是数组,如 ["msi", "nsis"],也可以写 "all" 表示生成所有当前平台支持的格式。
  • icon:应用图标文件列表,不同平台需要不同尺寸或格式。Tauri 会根据这些源文件自动生成各平台需要的图标格式。
  • 其他常见配置:Windows 安装包(windows.wixnsis)、macOS 签名(macOS)、Linux 分类定义等。这些会在具体平台章节深入。

5. 插件系统(可选)

Tauri 2.x 的插件通过 plugins 字段集中管理,例如:

"plugins": {
  "shell": {
    "open": true
  },
  "fs": {
    "scope": ["$APPDATA/*"]
  }
}

每个插件会有自己的命名空间和配置规则,用来声明权限和行为。这是 Tauri 2.x 与 1.x 最大的变化之一:权限更加细粒度,且直接写在配置文件里。


实用小技巧

  • 快速定位问题:打包或启动报错时,先检查 identifier 格式、前端构建路径是否正确。
  • 窗口尺寸调试:开发阶段可以先设置为较小的初始尺寸,然后通过拖拽调整,确认体验后再写回配置文件。
  • 安全 CSP 配置:如果不确定 CSP 怎么写,可以先用 Chrome DevTools 在浏览器里测试 Content-Security-Policy 响应头,确认策略正确后移入配置。
  • 环境变量beforeBuildCommand 等字段支持跨平台命令,可以利用系统环境变量(如 npm run build -- --mode production)。

配置文件结构清晰、层级分明,掌握这些基础配置后,就可以开始构建满足需求的桌面应用了。后续更多高级配置(如深度集成系统菜单、多窗口通信等)都可以在此基础上逐步添加。