配置

Tauri配置对象。它是从一个文件中读取的,您可以在该文件中定义前端资源、配置bundler、启用应用程序更新程序、定义系统托盘、通过allowlist启用API等等。

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

生成后,您可以随意修改,以定制您的 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.linux.tomlTauri.windows.tomlTauri.macos.toml 文件,如果使用 Tauri.toml 格式)中读取特定平台的配置,并与主配置对象合并。

配置结构

配置由以下对象组成::

tauri.config.json文件示例:


{
  "build": {
    "beforeBuildCommand": "",
    "beforeDevCommand": "",
    "devPath": "../dist",
    "distDir": "../dist"
  },
  "package": {
    "productName": "tauri-app",
    "version": "0.1.0"
  },
  "tauri": {
    "allowlist": {
      "all": true
    },
    "bundle": {},
    "security": {
      "csp": null
    },
    "updater": {
      "active": false
    },
    "windows": [
      {
        "fullscreen": false,
        "height": 600,
        "resizable": true,
        "title": "Tauri App",
        "width": 800
      }
    ]
  }
}

Package配置

包配置.

类型: object

属性名 类型 默认 描述
productName
string null App名称
version
string null 应用程序版本。它是一个语义化版本号或包含version字段的package.json文件的路径。

Tauri配置

Tauri配置.

类型: object

属性名 类型 默认 描述
pattern
模式种类 查看 使用的图案.
windows
窗口配置 [] 窗口配置.
cli
Cli配置 查看 Cli配置.
bundle
打包配置 查看 打包配置.
allowlist
Allowlist配置 查看 允许列表配置.
security
安全配置 查看 安全配置.
updater
更新配置 查看 更新配置.
systemTray
系统托盘配置 查看 应用程序系统托盘配置.
macOSPrivateApi
boolean false MacOS专用API配置。启用透明后台API并将fullScreenEnabled首选项设置为true.

模式种类

应用程序模式.

可以是以下任何一种类型:

  • { "use": "brownfield" } : Brownfield模式.
  • { "use": "isolation", "options": { "dir": string } } : 隔离模式。建议用于安全目的.

窗口配置

窗口配置

类型: object

属性名 类型 默认 描述
label
string null 窗口标识符。必须是字母数字。
url
窗口Urlview窗口URL。
userAgent
stringnullwebview用户代理
fileDropEnabled
booleantrue是否在webview上启用文件拖放功能。默认情况下是启用的。

在Windows的前端使用拖放功能需要禁用它。
center
booleanfalse窗口启动是否居中。
x
numbernull窗口左上角的水平位置
y
numbernull窗口左上角的垂直位置
width
number800窗口宽度.
height
number600窗口高度.
minWidth
numbernull最小窗口宽度.
minHeight
numbernull最小窗口高度.
maxWidth
numbernull最大窗口宽度.
maxHeight
numbernull最大窗口高度.
resizable
booleantrue窗口是否可以调整大小.
title
stringnull窗口标题.
fullscreen
booleanfalse窗口是否以全屏方式启动.
focus
booleantrue窗口是否会在初始时聚焦.
transparent
booleanfalse窗口是否透明.

请注意,在 macOS 上,这需要在 tauri > macOSPrivateApi 下启用 macos-private-api 功能标志。警告:在 macOS 上使用私有 API 会导致应用程序无法被 App Store 接受.
maximized
booleanfalse窗口是否最大化.
visible
booleantrue窗口是否可见.
decorations
booleantrue窗口是否应具有边框和条形
alwaysOnTop
booleanfalse窗口是否应始终位于其他窗口之上
contentProtected
booleanfalse防止窗口内容被其他应用程序捕获
skipTaskbar
booleanfalse如果是true, 则隐藏 Windows 和 Linux 任务栏上的窗口图标。
theme
主题查看初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上执行
titleBarStyle
标题栏样式查看macOS 标题栏的样式。
hiddenTitle
booleanfalse如果是true, 则将窗口标题设置为在macOS上隐藏。
acceptFirstMouse
booleanfalse在 macOS 上,点击非活动窗口是否也会点击到webview
tabbingIdentifier
string null 为macOS定义窗口[选项卡标识符]

具有匹配选项卡标识符的窗口将被分组在一起。如果未设置选项卡标识符,则将禁用自动选项卡。

[tabbing identifier]: https://developer.apple.com/documentation/appkit/nswindow/1644704-tabbingidentifier
additionalBrowserArgs
string null 在 Windows 上定义额外的浏览器参数。默认情况下,wry 会传递--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection,因此如果使用此方法,还需要自行禁用这些组件。

窗口Url

在Tauri webview窗口上打开的URL。

可以是以下任何一种类型:

  • string: 外部URL。
  • string: 应用程序 URL 的路径部分。例如,要加载 tauri://localhost/users/john,只需在此配置中提供 users/john

主题

系统主题

可以是以下任何一种类型:

  • "Light": 浅色主题
  • "Dark": 深色主题

标题栏样式

macOS 上窗口标题栏的显示方式

可以是以下任何一种类型:

  • "Visible": 普通标题栏

  • 使标题栏透明,因此显示窗口背景色。

    如果您不需要在标题栏下显示实际的 HTML,它将非常有用。这样可以避免使用 TitleBarStyle::Overlay 时的注意事项。当 Tauri 允许您设置自定义窗口背景颜色时,它将变得更加有用。

  • "Overlay": 在窗口内容上显示透明的标题栏。

    请记住:

  • 不同操作系统版本的标题栏高度不同,这可能导致窗口控件和标题不在你预想的位置。

  • 您需要定义一个自定义拖动区域来使您的窗口可以拖动,但由于存在限制,当窗口不在焦点上时,您无法拖动窗口 https://github.com/tauri-apps/tauri/issues/4316

  • 窗口标题的颜色取决于系统主题

Cli配置

cli配置

类型: object

属性名 类型 默认 描述
description
stringnull命令说明,将显示在帮助信息中的。
longDescription
stringnull命令详细说明,将显示在帮助信息中。
beforeHelp
stringnull添加额外的帮助信息,在自动生成的帮助信息之外显示。该信息显示在自动生成的帮助信息之前。这通常用于标题信息。
afterHelp
stringnull添加额外的帮助信息,在自动生成的帮助信息之外显示。这些信息显示在自动生成的帮助信息之后。通常用于说明参数的使用方法或注意事项。
args
arraynull命令参数列表
subcommands
objectnull此命令的子命令列表

Cli参数

Cli参数

类型: object

属性名 类型 默认 描述
short
stringnull参数的简写,去掉前面的"-"。

注意:任何前导的"-"字符都将被去掉,只有第一个非"-"字符才会被用作简短参数。
name
string(必填)null唯一参数名称
description
stringnull参数描述,将显示在帮助信息中。通常,这是参数的简短(一行)描述。
longDescription
stringnull参数长描述,将显示在帮助信息中。通常,这是一条更详细(多行)的信息,用于描述参数。
takesValue
booleanfalse指定参数在运行时取值。

注意:参数值可以通过以下任何一种方法指定
- 使用空格,如 -o 值或 --option 值
- 使用等号且不留空格,如 -o=value 或 --option=value
- 使用简短且不留空格,如 -ovalue
multiple
booleanfalse指定参数可能有未知数量的多个值。如果没有其他设置,该参数只能出现一次。

例如,允许使用 --opt val1 val2,但不允许使用 --opt val1 val2 --opt val3。

注意: 设置此项时,需要将 takes_value 设为 true。
multipleOccurrences
booleanfalse指定参数可以出现多次。对于标志,这将导致记录标志出现的次数。例如 -ddd 或 -d -d -d 将被视为出现三次。对于取值的选项或参数,这并不影响它们可以接受的值的个数。(也就是说,一次只允许接受一个值)

例如,允许使用 --opt val1 --opt val2,但不允许使用 --opt val1 val2。
numberOfValues
integer null 指定需要多少个值才能满足该参数的要求。例如,如果有一个 -f <file> 参数,需要 3 个 "文件",则设置 number_of_values = 3,除非用户提供 3 个且仅 3 个值,否则该参数不会满足要求。

注意:并不需要设置 multiple_occurrences = true。设置 multiple_occurrences = true 将允许 -f <file> <file> <file> -f <file> <file> <file> 而不设置该参数将只允许出现一次。

注意:隐式设置 takes_value = truemultiple_values = true
possibleValues
arraynull为该参数指定一系列可能的值。运行时,CLI 会验证是否只使用了其中一个指定值,否则会显示错误信息。
minValues
integernull 指定该参数的最小值个数。例如,如果有一个 -f <file> 参数,需要至少 2 个 "文件",那么就可以设置 minValues: 2,如果用户提供了 2 个或更多的值,该参数就会满足要求。
maxValues
integernull指定该参数的最大值个数。例如,如果有一个 -f <file> 参数,需要最多 3 个 "文件",则可以设置 .max_values(3),如果用户提供 1、2 或 3 个值,该参数就会满足要求。
required
booleanfalse设置参数是否默认为必填参数。

- 默认为必填,表示在没有评估其他冲突规则的情况下是必填的
-冲突的规则优先于被要求的规则。
requiredUnlessPresent
stringnull设置一个参数,覆盖此参数的必填设置,即除非存在其他参数,否则此参数为必填参数。
requiredUnlessPresentAll
arraynull设置覆盖此参数必填设置的参数,即除非所有其他参数都存在,否则此参数为必填参数。
requiredUnlessPresentAny
arraynull设置覆盖此参数必填设置的参数,即除非至少有一个其他参数存在,否则此参数为必填参数。
conflictsWith
stringnull通过名称设置冲突参数,即使用该参数时,后面的参数不能出现,反之亦然。
conflictsWithAll
arraynull与 conflictsWith 相同,但允许为每个参数指定多个双向冲突。
requires
stringnull通过名称指定一个参数,该参数存在时必须使用该参数,即使用该参数时,下面的参数必须存在。
requiresAll
arraynull多个参数的名称在使用该参数时是必需的,即使用该参数时,必须有以下参数。
requiresIf
arraynull允许使用签名为 [arg, value] 的条件要求,只有当 arg 的值等于 ${value} 时,该要求才有效。
requiredIfEq
arraynull允许使用 [arg, value] 签名有条件地指定参数为必填参数,只有当 arg 的值等于 ${value} 时,该要求才会生效。
requireEquals
booleannull要求选项使用 --option=val 语法,即在选项和相关值之间使用等号。
index
integer 最小值: 1)null位置参数索引,从 1 开始。

索引指的是与其他位置参数相关的位置。它并不定义整个参数列表中的位置。当使用 multiple=true 时,只有最后一个位置参数可以定义为多重参数(即索引最高的参数)。

打包配置

tauri-bundler 的配置。

类型: object

属性名 类型 默认 描述
active
booleanfalseTauri是应该打包您的应用程序,还是只输出可执行文件。
targets
打包目标查看打包目标,目前支持["deb"、"appimage"、"nsis"、"msi"、"app"、"dmg"、"updater"]或"all"。
identifier
string(必填)null以反向域名符号表示的应用程序标识符(如 com.tauri.example)。该字符串在各应用程序中必须是唯一的,因为它用于系统配置,如打包 ID 和 webview 数据目录路径。该字符串必须只包含字母数字字符(A-Z、a-z 和 0-9)、连字符 (-) 和句点 (.)。
publisher
stringnull应用程序的发布者。默认为标识符字符串中的第二个元素。目前映射到 Windows 安装程序的制造商属性。
icon
string[][]应用程序的图标
resources
arraynull要打包的应用程序资源。每个资源都是一个文件或目录的路径。支持 Glob 模式。
copyright
stringnull应用程序的版权字符串。
category
stringnull应用种类。

应该是以下其中之一: Business, DeveloperTool, Education, Entertainment, Finance, Game, ActionGame, AdventureGame, ArcadeGame, BoardGame, CardGame, CasinoGame, DiceGame, EducationalGame, FamilyGame, KidsGame, MusicGame, PuzzleGame, RacingGame, RolePlayingGame, SimulationGame, SportsGame, StrategyGame, TriviaGame, WordGame, GraphicsAndDesign, HealthcareAndFitness, Lifestyle, Medical, Music, News, Photography, Productivity, Reference, SocialNetworking, Sports, Travel, Utility, Video, Weather.
shortDescription
stringnull应用程序的简短描述。
longDescription
stringnull应用程序的较长多行描述。
appimage
AppImage配置查看AppImage打包配置。
deb
Deb配置查看Debian打包配置。
macOS
Mac配置查看macOS打包配置。
externalBin
arraynull要嵌入应用程序的二进制文件的绝对路径或相对路径列表。

请注意,Tauri将按照"binary name{-target triple}{.system extension}"模式查找特定于系统的二进制文件。

例如,对于外部二进制文件 "my-binary",Tauri 会查找:

- 用于 Windows 的 "my-binary-x86_64-pc-windows-msvc.exe"
- 用于 macOS 的 "my-binary-x86_64-apple-darwin"
- 用于 Linux 的 "my-binary-x86_64-unknown-linux-gnu"

因此,不要忘记为所有目标平台提供二进制文件。
windows
Windows配置查看Windows打包配置

打包目标

打包的目标。每个值不区分大小写。

可以是以下任何一种类型:

打包类型

由tauri-bundler打的包

可以是以下任何一种类型:

  • "deb": debian包 (.deb).
  • "appimage": AppImage包 (.appimage).
  • "msi": 微软安装包 (.msi).
  • "nsis": NSIS包 (.exe).
  • "app": macOS应用程序包 (.app).
  • "dmg": 苹果磁盘镜像包 (.dmg).
  • "updater": Tauri更新包.

打包资源

打包资源的定义。可以是要包含的路径列表,也可以是源路径到目标路径的映射。

可以是以下任何一种类型:

  • string[]: 要包含的路径列表。
  • object: 源路径到目标路径的映射。

AppImage配置

配置AppImage包.

类型: object

属性名 类型 默认 描述
bundleMediaFramework
boolean false 包含音频和视频播放所需的额外 gstreamer 依赖项。这将使软件包的大小增加 15-35MB 左右,具体取决于您的构建系统。

Deb配置

Debian(.deb)包的配置.

类型: object

属性名 类型 默认 描述
depends
arraynull应用程序依赖的 deb 依赖项列表。
files
objectnull要包含在软件包中的文件。

Mac配置

macOS包的配置.

类型: object

属性名 类型 默认 描述
frameworks
arraynull字符串列表,需要打包进应用程序的macOS X 框架。

如果使用的是名称,则必须省略".framework",它将查找标准安装位置。您也可以使用特定框架的路径。
minimumSystemVersion
stringnull版本字符串,表示打包的应用程序支持的最小 macOS X 版本。默认为 10.13

将其设置为null将完全删除程序包的Info.plist上的LSMinimumSystemVersion字段和MACOSX_DEPLOYMENT_TARGET环境变量。

空字符串被视为无效值,因此使用默认值。
exceptionDomain
stringnull允许应用程序与外界通信。它应小写,不含端口和协议域名。
license
stringnull要添加到 DMG 包的许可证文件的路径。
signingIdentity
stringnull用于代码签名的标识。
providerShortName
stringnull公证机构简称。
entitlements
stringnull权限文件的路径。

Windows配置

Windows打包配置.

类型: object

属性名 类型 默认 描述
digestAlgorithm
stringnull指定用于创建文件签名的文件摘要算法。需要用于代码签名。建议使用 SHA-256。
certificateThumbprint
stringnull指定签名证书的 SHA1 哈希值。
timestampUrl
stringnull要在时间戳期间使用的服务器。
tsp
booleanfalse是否使用时间戳协议(TSP,又称 RFC 3161)作为时间戳服务器。代码签名提供商可能会使用 TSP 时间戳服务器,例如 SSL.com。如果是这样,请将 TSP 设置为 true。
webviewInstallMode
Webview安装模式查看Webview2运行时的安装模式。
webviewFixedRuntimePath
stringnull要使用的 webview 固定运行时的路径。如果设置了 webview_install_mode,则会被覆盖。

将在v2版本中删除,首选 webview_install_mode 选项。

固定版本可从官方网站下载。必须将 .cab 文件解压缩到一个文件夹中,并在此字段中定义文件夹路径。
allowDowngrades
booleantrue验证第二个应用程序的安装,如果设置为 false,则阻止用户安装旧版本。

例如,如果安装了 1.2.1,用户就无法安装 1.2.01.1.5 版本的应用程序。

该标志的默认值为 true
wix
Wix配置查看使用 WiX 生成的 MSI 配置。
nsis
Nsis配置查看使用 NSIS 生成的安装程序的配置。

Webview安装模式

Webview2 运行时的安装模式。请注意,更新程序包使用的是 DownloadBootstrapper

更多信息请看: windows打包.

可以是以下任何一种类型:

  • { "type": "skip" }: 不将 Webview2 作为 Windows 安装程序的一部分进行安装。
  • { "type": "downloadBootstrapper", "silent": boolean }: 下载引导程序并运行。需要互联网连接。这样安装文件的大小会变小,但不建议在 Windows 7 上使用。
  • { "type": "embedBootstrapper", "silent": boolean }: 嵌入引导程序并运行。需要互联网连接。安装程序大小会增加约 1.8MB,但能更好地支持 Windows 7。
  • { "type": "offlineInstaller", "silent": boolean }: 嵌入离线安装程序并运行。无需互联网连接。安装程序大小会增加约 127MB。
  • { "type": "fixedRuntime", "path": string }: 嵌入固定的 webview2 版本并在运行时使用。安装程序大小会增加约 180MB。

Wix配置

使用 WiX 配置 MSI 软件包。

类型: object

属性名 类型 默认 描述
language
Wix语言查看要构建的安装程序语言。请看 https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables.
template
stringnull要使用的自定义.wxs模板。
fragmentPaths
string[][]包含 WiX 片段的 .wxs 文件路径列表。
componentGroupRefs
string[][]要从片段中引用的 ComponentGroup 元素 ID。
componentRefs
string[][]要从片段中引用的组件元素 ID。
featureGroupRefs
string[][]要从片段中引用的 FeatureGroup 元素 ID。
featureRefs
string[][]您要从片段中引用的特征元素 ID。
mergeRefs
string[][]您要从片段中引用的合并元素 ID。
skipWebviewInstall
booleanfalse在应用程序安装后禁用 Webview2 运行时安装。

将在v2版本中删除,首选 [WindowsConfig::webview_install_mode] 选项。
license
stringnull要在安装程序中呈现的许可证文件的路径。

必须是 RTF 文件,因此如果提供了不同的扩展名,我们会将其转换为 RTF 格式。
enableElevatedUpdateTask
booleanfalse在Windows任务计划程序中创建提升的更新任务。
bannerPath
stringnull用作安装用户界面横幅的位图文件的路径。除安装程序的第一页外,该位图将出现在所有页面的顶部。

要求的尺寸为 493px × 58px。
dialogImagePath
stringnull安装用户界面对话框中使用的位图文件的路径。它用于欢迎和完成对话框。所需尺寸为 493px × 312px。

Wix语言

使用 WiX 构建的语言

可以是以下任何一种类型:

  • string: 要构建的单一语言,无需配置。
  • string[]: 要构建的语言列表,无需配置。
  • object: 语言及其配置的映射。

Wix语言配置

为Wix构建配置目标语言

类型: object

属性名 类型 默认 描述
localePath
stringnulllocale .wxl 文件的路径。请看 https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html.

Nsis配置

使用 NSIS 对安装包进行配置。

类型: object

属性名 类型 默认 描述
license
stringnull要在安装程序中呈现的许可证文件的路径。
headerImage
stringnull要显示在安装程序页面头部的位图文件的路径。

建议尺寸为 150px x 57px。
sidebarImage
stringnull欢迎页面和完成页面位图文件的路径。

建议尺寸为 164px x 314px。
installerIcon
stringnull用作安装程序图标的图标文件的路径。
installMode
NSIS安装模式查看是为所有用户安装,还是只为当前用户安装。
languages
arraynull安装程序语言列表。默认情况下使用操作系统语言。如果操作系统语言不在语言列表中,则将使用第一种语言。要允许用户选择语言,请将 display_language_selector 设为 true

有关语言的完整列表,请查看: https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files
displayLanguageSelector
booleanfalse是否在显示安装程序和卸载程序窗口前显示语言选择对话框。默认情况下会选择操作系统语言,并回退到languages数组中的第一种语言。

NSIS安装模式

NSIS 安装程序的安装模式。

可以是以下任何一种类型:

  • "currentUser": 安装程序的默认模式。

    默认情况下,将应用程序安装在不需要管理员访问权限的目录中。

安装程序元数据将保存在 HKCU 注册表路径下。

  • "perMachine": 默认情况下,将应用程序安装在 Program Files 文件夹目录下,安装时需要管理员访问权限。

    安装程序元数据将保存在 HKLM 注册表路径下。

  • "both": 结合两种模式,允许用户在安装时选择是为当前用户安装还是为每台机器安装。请注意,即使用户只想为当前用户安装,该模式也需要管理员权限。

    安装程序元数据将根据用户的选择保存在 HKLMHKCU 注册表路径下。

Allowlist配置

Allowlist配置. 请查看 Cargo 允许列表特性.

注意事项

  • 没有自己的 allowlist 选项的端点默认为启用。
  • 只有"选择加入",没有"选择退出"。将选项设置为false无效。

示例

  • "app-all": true 将使hide端点可用,无论允许列表中的hide设置为 false 还是 true

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标记可启用所有 API 功能。
fs
FsAllowlist配置查看文件系统 API 允许列表。
window
WindowAllowlist配置查看Window API 允许列表。
shell
ShellAllowlist配置查看Shell API 允许列表.
dialog
DialogAllowlist配置查看Dialog API 允许列表.
http
HttpAllowlist配置查看HTTP API 允许列表.
notification
NotificationAllowlist配置查看Notification API 允许列表.
globalShortcut
GlobalShortcutAllowlist配置查看Global shortcut API 允许列表.
os
OsAllowlist配置查看OS 允许列表.
path
PathAllowlist配置查看Path API 允许列表.
protocol
ProtocolAllowlist配置查看自定义协议允许列表。
process
ProcessAllowlist配置查看Process API 允许列表.
clipboard
ClipboardAllowlist配置查看Clipboard APIs 允许列表.
app
AppAllowlist配置查看App APIs 允许列表.

FsAllowlist配置

文件系统 API 的允许列表。

类型: object

Name Type Default Description
scope
FsAllowlistScope[]文件系统 API 的访问范围。
all
booleanfalse使用此标志可启用所有文件系统 API 功能。
readFile
booleanfalse从本地文件系统读取文件。
writeFile
booleanfalse将文件写入本地文件系统。
readDir
booleanfalse从本地文件系统读取目录
copyFile
booleanfalse从本地文件系统复制文件
createDir
booleanfalse从本地文件系统创建目录
removeDir
booleanfalse从本地文件系统中删除目录。
removeFile
booleanfalse从本地文件系统中删除文件。
renameFile
booleanfalse重命名本地文件系统中的文件
exists
booleanfalse检查本地文件系统中是否存在路径。

FsAllowlistScope

文件系统范围定义。这是一个 glob 模式列表,用于限制从 webview 访问 API。

每个模式都可以以一个变量开始,该变量解析系统基本目录。变量包括: $AUDIO, $CACHE, $CONFIG, $DATA, $LOCALDATA, $DESKTOP, $DOCUMENT, $DOWNLOAD, $EXE, $FONT, $HOME, $PICTURE, $PUBLIC, $RUNTIME, $TEMPLATE, $VIDEO, $RESOURCE, $APP, $LOG, $TEMP, $APPCONFIG, $APPDATA, $APPLOCALDATA, $APPCACHE, $APPLOG.

可以是以下任何一种类型:

  • string[]: 此作用域允许使用的路径列表。
  • object: 一个完整的作用域配置。

WindowAllowlist配置

窗口API的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标记可启用所有窗口 API 功能。
create
booleanfalse允许动态创建窗口。
center
booleanfalse允许将窗口居中。
requestUserAttention
booleanfalse允许请求用户关注窗口。
setResizable
booleanfalse允许设置窗口的可调整大小标志。
setTitle
booleanfalse允许更改窗口标题。
maximize
booleanfalse允许最大化窗口。
unmaximize
booleanfalse允许取消窗口最大化。
minimize
booleanfalse允许最小化窗口。
unminimize
booleanfalse允许取消窗口最小化。
show
booleanfalse允许显示窗口。
hide
booleanfalse允许隐藏窗口。
close
booleanfalse允许关闭窗口。
setDecorations
booleanfalse允许设置窗口的装饰标志。
setAlwaysOnTop
booleanfalse允许设置窗口的 always_on_top 标志。
setContentProtected
booleanfalse允许防止其他应用程序捕获窗口内容。
setSize
booleanfalse允许设置窗口大小。
setMinSize
booleanfalse允许设置窗口最小尺寸。
setMaxSize
booleanfalse允许设置窗口最大尺寸。
setPosition
booleanfalse允许更改窗口的位置。
setFullscreen
booleanfalse允许设置窗口的全屏标志。
setFocus
booleanfalse允许聚焦窗口。
setIcon
booleanfalse允许更改窗口图标。
setSkipTaskbar
booleanfalse允许设置窗口的 skip_taskbar 标志。
setCursorGrab
booleanfalse允许抓取光标。
setCursorVisible
booleanfalse允许设置光标可见度。
setCursorIcon
booleanfalse允许更改光标图标。
setCursorPosition
booleanfalse允许设置光标位置。
setIgnoreCursorEvents
booleanfalse允许忽略光标事件。
startDragging
booleanfalse允许在窗口上开始拖动。
print
booleanfalse允许打开系统对话框打印窗口内容。

ShellAllowlist配置

shell API 的允许列表。

类型: object

属性名 类型 默认 描述
scope
ShellAllowlistScope[]二进制执行 API 的访问范围。辅助进程已自动启用。
all
booleanfalse使用此标记可启用所有 shell API 功能。
execute
booleanfalse开启二进制执行。
sidecar
booleanfalse启用辅助进程执行,允许 JavaScript 层生成一个辅助进程命令,这是一个随应用程序一起发布的可执行文件。更多信息,请参阅 嵌入外部二进制文件.
open
ShellAllowlistOpenfalse使用用户的默认应用程序打开URL。

ShellAllowlistScope

Shell 范围定义。这是一个命令名称和相关 CLI 参数的列表,用于限制从 webview 访问 API。

类型: ShellAllowedCommand[]

ShellAllowedCommand

允许 webview API 执行的命令。

类型: object

属性名 类型 默认 描述
name
string(必填)null允许 shell 命令配置的名称。

该名称将在 webview API 中使用,以调用该命令和任何指定参数。
cmd
stringnull命令名称。可以以解析系统基本目录的变量开头。变量有: $AUDIO, $CACHE, $CONFIG, $DATA, $LOCALDATA, $DESKTOP, $DOCUMENT, $DOWNLOAD, $EXE, $FONT, $HOME, $PICTURE, $PUBLIC, $RUNTIME, $TEMPLATE, $VIDEO, $RESOURCE, $APP, $LOG, $TEMP, $APPCONFIG, $APPDATA, $APPLOCALDATA, $APPCACHE, $APPLOG.
args
ShellAllowedArgsfalse执行命令时允许使用的参数。
sidecar
booleanfalse如果该命令是一条辅助命令。

ShellAllowedArgs

允许 webview API 执行的一组命令参数。

如果值为 true,则允许向命令传递任何参数;如果为 false,则禁止所有参数。[ShellAllowedArg] 列表将把这些参数设置为传递给所附命令配置的唯一有效参数。

可以是以下任何一种类型:

  • boolean: 使用简单的布尔值来允许或禁用此命令配置的所有参数。
  • ShellAllowedArg[]: 可用于命令配置的特定 [ShellAllowedArg] 集合。

ShellAllowedArg

允许 webview API 执行的命令参数。

可以是以下任何一种类型:

  • string: 一个不可配置的参数,按照指定的顺序传递给命令。
  • object: 从 webview API 调用命令时设置的变量。

ShellAllowlistOpen

定义 shell > open api 范围。

可以是以下任何一种类型:

  • boolean: 是否应启用 shell open API。

    如果启用,则使用默认验证 (^((mailto:\w+)|(tel:\w+)|(https?://\w+)).+) 。

  • string: 启用 shell open API,打开的路径必须与自定义的 regex 匹配。

    如果使用自定义 regex 支持非 http(s) 模式,则应注意防止使用允许类标志字符串通过验证的值,例如 --enable-debugging, -i, /R.

DialogAllowlist配置

对话框API的允许列表.

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有对话 API 功能。
open
booleanfalse允许 API 打开一个对话窗口来选择文件。
save
booleanfalse允许 API 打开对话窗口,选择保存文件的位置。
message
booleanfalse允许 API 显示消息对话窗口。
ask
booleanfalse允许 API 显示带有是/否按钮的对话窗口。
confirm
booleanfalse允许 API 显示带有确定/取消按钮的对话窗口。

HttpAllowlist配置

HTTP API 的允许列表。

类型: object

属性名 类型 默认 描述
scope
HttpAllowlistScope[]HTTP API 的访问范围。
all
booleanfalse使用此标志可启用所有 HTTP API 功能。
request
booleanfalse允许发送 HTTP 请求。

HttpAllowlistScope

HTTP API 范围定义。它是 webview 在使用 HTTP API 时可以访问的 URL 列表。使用 glob 模式将作用域 URL 与请求 URL 进行匹配。

示例:

  • "https://**": 允许所有 HTTPS 网址
  • "https://*.github.com/tauri-apps/tauri": 允许 "github.com "的任何子域使用 "tauri-apps/api "路径
  • "https://myapi.service.com/users/*": 允许访问任何以 "https://myapi.service.com/users/"开头的 URL

类型: string[]

NotificationAllowlist配置

通知 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有通知 API 功能。

GlobalShortcutAllowlist配置

全局快捷 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有全局快捷 API 功能。

OsAllowlist配置

操作系统 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有操作系统 API 功能。

PathAllowlist配置

路径 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有路径 API 功能。

ProtocolAllowlist配置

自定义协议的允许列表。

类型: object

属性名 类型 默认 描述
assetScope
FsAllowlistScope[]资源(例如文件、图像、音频、视频等)协议的访问范围。
all
booleanfalse使用此标志可启用所有自定义协议。
asset
booleanfalse启用资源协议。

ProcessAllowlist配置

进程 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有进程 API。
relaunch
booleanfalse启用重新启动 API。
relaunchDangerousAllowSymlinkMacos
booleanfalse危险选项,允许 macOS 在二进制文件包含符号链接的情况下重新启动。

这是因为 macOS 的符号链接保护较少。强烈建议不要设置此标记,除非你有非常特殊的原因,并了解其影响。
exit
booleanfalse启用退出 API。

ClipboardAllowlist配置

剪贴板 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有剪贴板 API。
writeText
booleanfalse启用剪贴板的 writeText API。
readText
booleanfalse启用剪贴板的 readText API。

AppAllowlist配置

应用程序 API 的允许列表。

类型: object

属性名 类型 默认 描述
all
booleanfalse使用此标志可启用所有应用程序 API。
show
booleanfalse启用应用程序的show API。
hide
booleanfalse启用应用程序的hide API。

Security配置

安全配置。

类型: object

属性名 类型 默认 描述
csp
Csp查看内容安全策略,该策略将注入到已构建应用程序的所有 HTML 文件中。如果未指定 dev_csp,该值也将注入到 dev 上。

这是配置中非常重要的一部分,因为它有助于确保 WebView 的安全。请参见 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP.
devCsp
Csp查看在开发过程中将注入到所有 HTML 文件中的 "内容安全策略"。

这是配置中非常重要的一部分,因为它有助于确保 WebView 的安全。请参见 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP.
freezePrototype
booleanfalse使用自定义协议时冻结 Object.prototype
dangerousDisableAssetCspModification
DisabledCspModificationKindfalse禁用Tauri注入的CSP源。

在编译时,Tauri 会解析所有前端资源并更改内容安全策略(Content-Security-Policy),通过注入 nonce 和哈希源,只允许加载您自己的脚本和样式。这将限制您的 CSP,在与其他灵活源一起使用时可能会产生问题。

该配置选项允许布尔值和字符串列表值。布尔值指示 Tauri 禁用所有 CSP 注入,而字符串列表则表示 Tauri 不能注入的 CSP 指令。

警告: 只有当您知道自己在做什么并正确配置了 CSP 时,才能禁用此功能。如果没有 Tauri 保护,您的应用程序可能会受到 XSS 攻击。
dangerousRemoteDomainIpcAccess
RemoteDomainAccessScope[][]允许外部域向 Tauri 发送命令。

默认情况下,外部域无法访问 window.__TAURI__,这意味着它们无法与 Rust 中定义的命令通信。这样就能防止外部加载的恶意网站或被入侵网站开始在用户设备上执行命令的攻击。

该配置允许一组外部域访问 Tauri 命令。配置允许访问 IPC 的域时,允许访问所有子路径。不允许使用子域。

警告: 只有在对恶意外部网站进行内部检查或可以信任允许的外部网站时,才能使用该选项。否则,您的应用程序可能会受到与 Tauri 命令相关的危险攻击。

Csp

内容安全策略的定义。请参见 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP.

可以是以下任何一种类型:

  • string: 以单个文本字符串表示的整个 CSP 策略。
  • object: 以字符串列表形式映射指令及其源值的对象。

CspDirectiveSources

内容-安全-策略指令源列表。请参见 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources.

可以是以下任何一种类型:

  • string: CSP 资源的内联列表。与 List 相同,但用空格分隔符连接。
  • string[]: CSP 来源列表。该集合将以空格分隔符连接 CSP 字符串。

DisabledCspModificationKind

dangerous_disable_asset_csp_modification 配置选项的可能值。

可以是以下任何一种类型:

  • boolean: 如果为true,则禁用所有 CSP 修改。默认值为false,可配置 Tauri 控制 CSP。
  • string[]: 禁用给定的 CSP 指令修改列表。

RemoteDomainAccessScope

外部命令访问定义。

类型: object

属性名 类型 默认 描述
scheme
stringnull允许使用的 URL 方案。默认情况下,允许所有模式。
domain
string(必填)null允许使用的域名。
windows
string[](必填)null此作用域适用的窗口标签列表。
plugins
string[][]此作用域允许使用的插件列表。
enableTauriAPI
booleanfalse允许访问 Tauri API。

Updater配置

更新器配置对象。

类型: object

属性名 类型 默认 描述
active
booleanfalse更新器是否处于活动状态。
dialog
booleantrue如果禁用,则显示内置对话框或使用事件系统。
endpoints
array?null更新器端点。在生产过程中使用 TLS。

更新器 URL 可以包含以下变量:
- {{current_version}}: 请求更新的应用程序版本
- {{target}}: 操作系统名称(linuxwindowsdarwin 中的一种)。
- {{arch}}: 机器的架构(x86_64i686aarch64armv7 之一)。

# 示例
- "https://my.cdn.com/latest.json": 是一个原始 JSON 端点,可返回每个平台的最新版本和下载链接。
- "https://updates.app.dev/{{target}}?version={{current_version}}&arch={{arch}}": 具有位置和查询字符串参数的专用API。
pubkey
stringnull签名公用密钥。
windows
UpdaterWindows配置查看更新器的 Windows 配置。

UpdaterEndpoint

更新服务器的 URL。

在生产环境中,URL 必须使用 https 协议。

类型: string

UpdaterWindows配置

Windows 的更新器配置。

类型: object

属性名 类型 默认 描述
installerArgs
string[][]为 NSIS 或 WiX 安装程序提供的附加参数。
installMode
WindowsUpdateInstallMode查看在Windows上更新的安装模式。默认为passive

WindowsUpdateInstallMode

Windows 更新的安装模式

可以是以下任何一种类型:

  • "basicUi": 指定安装过程中的基本用户界面,包括最后的对话框。
  • "quiet": 静默模式意味着无需用户交互。安装程序(WiX)需要管理员权限。
  • "passive": 指定无人值守模式,即安装只显示进度条。

SystemTray配置

配置应用程序系统托盘。

类型: object

属性名 类型 默认 描述
iconPath
string(必填)null系统托盘上使用的默认图标的路径。
iconAsTemplate
booleanfalse布尔值,用于确定图像是否代表 macOS 上的模板图片。
menuOnLeftClick
booleantrue一个布尔值,用于确定在 macOS 上左键单击托盘图标时是否显示菜单。
title
stringnullMacOS 托盘标题

Build配置

构建配置。

类型: object

属性名 类型 默认 描述
runner
stringnull用于构建和运行应用程序的二进制文件。
devPath
AppUrl查看在开发过程中加载的应用程序资源或 URL 的路径。

这通常是指向开发服务器的 URL,开发服务器通过实时重载为您的应用程序资源提供服务。大多数现代 JavaScript包都提供了默认启动开发服务器的方法。

有关如何设置开发服务器的示例,请参阅 viteWebpack DevServersirv
distDir
AppUrl查看要在生产中加载的应用程序资源或 URL 的路径。

如果提供了配置文件的相对路径,就会递归读取,并将所有文件嵌入应用程序二进制文件中。除非提供自定义窗口 URL,否则 Tauri 会查找 index.html 文件。

您还可以提供要嵌入的路径列表,这样就可以对添加到二进制文件中的文件进行精细控制。在这种情况下,所有文件都会被添加到根目录,您必须在 HTML 文件中引用它。

当提供 URL 时,应用程序不会打包资源,应用程序将默认加载该 URL。
beforeDevCommand
BeforeDevCommand查看tauri dev 启动前运行的 shell 命令。

如果执行条件编译,将设置 TAURI_PLATFORM、TAURI_ARCH、TAURI_FAMILY、TAURI_PLATFORM_VERSION、TAURI_PLATFORM_TYPE 和 TAURI_DEBUG 环境变量。
beforeBuildCommand
HookCommand查看tauri build 启动前运行的 shell 命令。

如果执行条件编译,将设置 TAURI_PLATFORM、TAURI_ARCH、TAURI_FAMILY、TAURI_PLATFORM_VERSION、TAURI_PLATFORM_TYPE 和 TAURI_DEBUG 环境变量。
beforeBundleCommand
HookCommand?查看tauri build中的打包阶段启动前运行的 shell 命令。

如果执行条件编译,将设置 TAURI_PLATFORM、TAURI_ARCH、TAURI_FAMILY、TAURI_PLATFORM_VERSION、TAURI_PLATFORM_TYPE 和 TAURI_DEBUG 环境变量。
features
arraynull传递给cargo命令行的功能。
withGlobalTauri
booleanfalse我们是否应该在 window.__TAURI__ 上注入 Tauri API。

AppUrl

定义要嵌入应用程序的 URL 或资源。

可以是以下任何一种类型:

  • WindowUrl: 应用程序的外部 URL 或包含应用程序资源的目录路径。
  • string[]: 要嵌入应用程序的文件数组。

BeforeDevCommand

tauri dev 之前运行的 shell 命令

可以是以下任何一种类型:

  • string: 使用默认选项运行给定的脚本。

  • { "script": string, "cwd": string, "wait": boolean }: 使用自定义选项运行给定的脚本。

    属性名 类型 默认 描述
    script
    string (必填)要执行的脚本。
    cwd
    stringnull当前工作目录。
    wait
    booleanfalsetauri dev 是否应等待命令执行完毕。默认为 false

HookCommand

描述 CLI 钩子触发时要执行的 shell 命令。

可以是以下任何一种类型:

  • string: 使用默认选项运行给定的脚本。

  • { "script": string, "cwd": string }: 使用自定义选项运行给定的脚本。

    属性名 类型 默认 描述
    script
    string (必填)要执行的脚本
    cwd
    stringnull当前工作目录。

Plugin配置

插件配置保存了一个 HashMap,它将插件名称映射到其配置对象。

类型: object