配置
Tauri配置对象。它是从一个文件中读取的,您可以在该文件中定义前端资源、配置bundler、启用应用程序更新程序、定义系统托盘、通过allowlist启用API等等。
配置文件由 tauri init
命令生成,该命令位于 Tauri 应用程序源代码目录 (src-tauri) 中。
生成后,您可以随意修改,以定制您的 Tauri 应用程序。
文件格式
默认情况下,配置定义为名为 tauri.conf.json
的 JSON 文件。
Tauri 还通过 config-json5
和 config-toml
Cargo 功能分别支持 JSON5 和 TOML 文件。JSON5 文件名必须是 tauri.conf.json
或 tauri.conf.json5
。TOML 文件名为 Tauri.toml
。
特定平台配置
除默认配置文件外,Tauri 还能从 tauri.linux.conf.json
、tauri.windows.conf.json
和 tauri.macos.conf.json
文件(或 Tauri.linux.toml
、Tauri.windows.toml
和 Tauri.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 |
模式种类 |
查看 | 使用的图案. |
窗口配置 |
[] | 窗口配置. | |
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 | 窗口Url | view | 窗口URL。 |
userAgent | string | null | webview用户代理 |
fileDropEnabled | boolean | true | 是否在webview上启用文件拖放功能。默认情况下是启用的。
在Windows的前端使用拖放功能需要禁用它。 |
center | boolean | false | 窗口启动是否居中。 |
x | number | null | 窗口左上角的水平位置 |
number | null | 窗口左上角的垂直位置 | |
number | 800 | 窗口宽度. | |
number | 600 | 窗口高度. | |
minWidth | number | null | 最小窗口宽度. |
minHeight | number | null | 最小窗口高度. |
maxWidth | number | null | 最大窗口宽度. |
maxHeight | number | null | 最大窗口高度. |
resizable | boolean | true | 窗口是否可以调整大小. |
title | string | null | 窗口标题. |
fullscreen | boolean | false | 窗口是否以全屏方式启动. |
focus | boolean | true | 窗口是否会在初始时聚焦. |
transparent | boolean | false | 窗口是否透明. 请注意,在 macOS 上,这需要在 tauri > macOSPrivateApi 下启用 macos-private-api 功能标志。警告:在 macOS 上使用私有 API 会导致应用程序无法被 App Store 接受. |
maximized | boolean | false | 窗口是否最大化. |
visible | boolean | true | 窗口是否可见. |
decorations | boolean | true | 窗口是否应具有边框和条形 |
alwaysOnTop | boolean | false | 窗口是否应始终位于其他窗口之上 |
contentProtected | boolean | false | 防止窗口内容被其他应用程序捕获 |
skipTaskbar | boolean | false | 如果是true , 则隐藏 Windows 和 Linux 任务栏上的窗口图标。 |
theme | 主题 | 查看 | 初始窗口主题。默认为系统主题。仅在 Windows 和 macOS 10.14+ 上执行 |
titleBarStyle | 标题栏样式 | 查看 | macOS 标题栏的样式。 |
boolean | false | 如果是true , 则将窗口标题设置为在macOS上隐藏。 |
|
acceptFirstMouse | boolean | false | 在 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 | string | null | 命令说明,将显示在帮助信息中的。 |
longDescription | string | null | 命令详细说明,将显示在帮助信息中。 |
beforeHelp | string | null | 添加额外的帮助信息,在自动生成的帮助信息之外显示。该信息显示在自动生成的帮助信息之前。这通常用于标题信息。 |
afterHelp | string | null | 添加额外的帮助信息,在自动生成的帮助信息之外显示。这些信息显示在自动生成的帮助信息之后。通常用于说明参数的使用方法或注意事项。 |
args | array | null | 命令参数列表 |
subcommands | object | null | 此命令的子命令列表 |
Cli参数
Cli参数
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
short | string | null | 参数的简写,去掉前面的"-"。 注意:任何前导的"-"字符都将被去掉,只有第一个非"-"字符才会被用作简短参数。 |
name | string (必填) | null | 唯一参数名称 |
description | string | null | 参数描述,将显示在帮助信息中。通常,这是参数的简短(一行)描述。 |
longDescription | string | null | 参数长描述,将显示在帮助信息中。通常,这是一条更详细(多行)的信息,用于描述参数。 |
takesValue | boolean | false | 指定参数在运行时取值。 注意:参数值可以通过以下任何一种方法指定 - 使用空格,如 -o 值或 --option 值 - 使用等号且不留空格,如 -o=value 或 --option=value - 使用简短且不留空格,如 -ovalue |
multiple | boolean | false | 指定参数可能有未知数量的多个值。如果没有其他设置,该参数只能出现一次。 例如,允许使用 --opt val1 val2,但不允许使用 --opt val1 val2 --opt val3。 注意: 设置此项时,需要将 takes_value 设为 true。 |
multipleOccurrences | boolean | false | 指定参数可以出现多次。对于标志,这将导致记录标志出现的次数。例如 -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 = true 和 multiple_values = true 。
|
possibleValues | array | null | 为该参数指定一系列可能的值。运行时,CLI 会验证是否只使用了其中一个指定值,否则会显示错误信息。 |
minValues | integer | null |
指定该参数的最小值个数。例如,如果有一个 -f <file> 参数,需要至少 2 个 "文件",那么就可以设置 minValues: 2 ,如果用户提供了 2 个或更多的值,该参数就会满足要求。 |
maxValues | integer | null | 指定该参数的最大值个数。例如,如果有一个 -f <file> 参数,需要最多 3 个 "文件",则可以设置 .max_values(3),如果用户提供 1、2 或 3 个值,该参数就会满足要求。 |
required | boolean | false | 设置参数是否默认为必填参数。 - 默认为必填,表示在没有评估其他冲突规则的情况下是必填的 -冲突的规则优先于被要求的规则。 |
requiredUnlessPresent | string | null | 设置一个参数,覆盖此参数的必填设置,即除非存在其他参数,否则此参数为必填参数。 |
requiredUnlessPresentAll | array | null | 设置覆盖此参数必填设置的参数,即除非所有其他参数都存在,否则此参数为必填参数。 |
requiredUnlessPresentAny | array | null | 设置覆盖此参数必填设置的参数,即除非至少有一个其他参数存在,否则此参数为必填参数。 |
conflictsWith | string | null | 通过名称设置冲突参数,即使用该参数时,后面的参数不能出现,反之亦然。 |
conflictsWithAll | array | null | 与 conflictsWith 相同,但允许为每个参数指定多个双向冲突。 |
requires | string | null | 通过名称指定一个参数,该参数存在时必须使用该参数,即使用该参数时,下面的参数必须存在。 |
requiresAll | array | null | 多个参数的名称在使用该参数时是必需的,即使用该参数时,必须有以下参数。 |
requiresIf | array | null | 允许使用签名为 [arg, value] 的条件要求,只有当 arg 的值等于 ${value} 时,该要求才有效。 |
requiredIfEq | array | null | 允许使用 [arg, value] 签名有条件地指定参数为必填参数,只有当 arg 的值等于 ${value} 时,该要求才会生效。 |
requireEquals | boolean | null | 要求选项使用 --option=val 语法,即在选项和相关值之间使用等号。 |
index | integer 最小值: 1 ) | null | 位置参数索引,从 1 开始。 索引指的是与其他位置参数相关的位置。它并不定义整个参数列表中的位置。当使用 multiple=true 时,只有最后一个位置参数可以定义为多重参数(即索引最高的参数)。 |
打包配置
tauri-bundler 的配置。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
active | boolean | false | Tauri是应该打包您的应用程序,还是只输出可执行文件。 |
targets | 打包目标 | 查看 | 打包目标,目前支持["deb"、"appimage"、"nsis"、"msi"、"app"、"dmg"、"updater"]或"all"。 |
identifier | string (必填) | null | 以反向域名符号表示的应用程序标识符(如 com.tauri.example )。该字符串在各应用程序中必须是唯一的,因为它用于系统配置,如打包 ID 和 webview 数据目录路径。该字符串必须只包含字母数字字符(A-Z、a-z 和 0-9)、连字符 (-) 和句点 (.)。 |
publisher | string | null | 应用程序的发布者。默认为标识符字符串中的第二个元素。目前映射到 Windows 安装程序的制造商属性。 |
icon | string[] | [] | 应用程序的图标 |
resources | array | null | 要打包的应用程序资源。每个资源都是一个文件或目录的路径。支持 Glob 模式。 |
copyright | string | null | 应用程序的版权字符串。 |
category | string | null | 应用种类。 应该是以下其中之一: 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 | string | null | 应用程序的简短描述。 |
longDescription | string | null | 应用程序的较长多行描述。 |
appimage | AppImage配置 | 查看 | AppImage打包配置。 |
deb | Deb配置 | 查看 | Debian打包配置。 |
macOS | Mac配置 | 查看 | macOS打包配置。 |
externalBin | array | null | 要嵌入应用程序的二进制文件的绝对路径或相对路径列表。 请注意,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打包配置 |
打包目标
打包的目标。每个值不区分大小写。
可以是以下任何一种类型:
"all"
: 打包所有目标。BundleType[]
: 打包目标的列表。BundleType
: 单一的打包目标
打包类型
由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 | array | null | 应用程序依赖的 deb 依赖项列表。 |
files | object | null | 要包含在软件包中的文件。 |
Mac配置
macOS包的配置.
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
frameworks | array | null | 字符串列表,需要打包进应用程序的macOS X 框架。 如果使用的是名称,则必须省略".framework",它将查找标准安装位置。您也可以使用特定框架的路径。 |
minimumSystemVersion | string | null | 版本字符串,表示打包的应用程序支持的最小 macOS X 版本。默认为 10.13 。将其设置为 null 将完全删除程序包的Info.plist 上的LSMinimumSystemVersion 字段和MACOSX_DEPLOYMENT_TARGET 环境变量。空字符串被视为无效值,因此使用默认值。 |
exceptionDomain | string | null | 允许应用程序与外界通信。它应小写,不含端口和协议域名。 |
license | string | null | 要添加到 DMG 包的许可证文件的路径。 |
signingIdentity | string | null | 用于代码签名的标识。 |
providerShortName | string | null | 公证机构简称。 |
entitlements | string | null | 权限文件的路径。 |
Windows配置
Windows打包配置.
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
digestAlgorithm | string | null | 指定用于创建文件签名的文件摘要算法。需要用于代码签名。建议使用 SHA-256。 |
certificateThumbprint | string | null | 指定签名证书的 SHA1 哈希值。 |
timestampUrl | string | null | 要在时间戳期间使用的服务器。 |
tsp | boolean | false | 是否使用时间戳协议(TSP,又称 RFC 3161)作为时间戳服务器。代码签名提供商可能会使用 TSP 时间戳服务器,例如 SSL.com。如果是这样,请将 TSP 设置为 true。 |
webviewInstallMode | Webview安装模式 | 查看 | Webview2运行时的安装模式。 |
webviewFixedRuntimePath | string | null | 要使用的 webview 固定运行时的路径。如果设置了 webview_install_mode ,则会被覆盖。将在v2版本中删除,首选 webview_install_mode 选项。固定版本可从官方网站下载。必须将 .cab 文件解压缩到一个文件夹中,并在此字段中定义文件夹路径。 |
allowDowngrades | boolean | true | 验证第二个应用程序的安装,如果设置为 false ,则阻止用户安装旧版本。例如,如果安装了 1.2.1 ,用户就无法安装 1.2.0 或 1.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 | string | null | 要使用的自定义.wxs模板。 |
fragmentPaths | string[] | [] | 包含 WiX 片段的 .wxs 文件路径列表。 |
componentGroupRefs | string[] | [] | 要从片段中引用的 ComponentGroup 元素 ID。 |
componentRefs | string[] | [] | 要从片段中引用的组件元素 ID。 |
featureGroupRefs | string[] | [] | 要从片段中引用的 FeatureGroup 元素 ID。 |
featureRefs | string[] | [] | 您要从片段中引用的特征元素 ID。 |
mergeRefs | string[] | [] | 您要从片段中引用的合并元素 ID。 |
skipWebviewInstall | boolean | false | 在应用程序安装后禁用 Webview2 运行时安装。 将在v2版本中删除,首选 [WindowsConfig::webview_install_mode] 选项。 |
license | string | null | 要在安装程序中呈现的许可证文件的路径。 必须是 RTF 文件,因此如果提供了不同的扩展名,我们会将其转换为 RTF 格式。 |
enableElevatedUpdateTask | boolean | false | 在Windows任务计划程序中创建提升的更新任务。 |
string | null | 用作安装用户界面横幅的位图文件的路径。除安装程序的第一页外,该位图将出现在所有页面的顶部。 要求的尺寸为 493px × 58px。 |
|
dialogImagePath | string | null | 安装用户界面对话框中使用的位图文件的路径。它用于欢迎和完成对话框。所需尺寸为 493px × 312px。 |
Wix语言
使用 WiX 构建的语言
可以是以下任何一种类型:
string
: 要构建的单一语言,无需配置。string[]
: 要构建的语言列表,无需配置。object
: 语言及其配置的映射。
Wix语言配置
为Wix构建配置目标语言
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
localePath | string | null | locale .wxl 文件的路径。请看 https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html. |
Nsis配置
使用 NSIS 对安装包进行配置。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
license | string | null | 要在安装程序中呈现的许可证文件的路径。 |
headerImage | string | null | 要显示在安装程序页面头部的位图文件的路径。 建议尺寸为 150px x 57px。 |
string | null | 欢迎页面和完成页面位图文件的路径。 建议尺寸为 164px x 314px。 |
|
installerIcon | string | null | 用作安装程序图标的图标文件的路径。 |
installMode | NSIS安装模式 | 查看 | 是为所有用户安装,还是只为当前用户安装。 |
languages | array | null | 安装程序语言列表。默认情况下使用操作系统语言。如果操作系统语言不在语言列表中,则将使用第一种语言。要允许用户选择语言,请将 display_language_selector 设为 true 。有关语言的完整列表,请查看: https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files |
displayLanguageSelector | boolean | false | 是否在显示安装程序和卸载程序窗口前显示语言选择对话框。默认情况下会选择操作系统语言,并回退到languages 数组中的第一种语言。 |
NSIS安装模式
NSIS 安装程序的安装模式。
可以是以下任何一种类型:
"currentUser": 安装程序的默认模式。
默认情况下,将应用程序安装在不需要管理员访问权限的目录中。
安装程序元数据将保存在 HKCU
注册表路径下。
"perMachine": 默认情况下,将应用程序安装在
Program Files
文件夹目录下,安装时需要管理员访问权限。安装程序元数据将保存在
HKLM
注册表路径下。"both": 结合两种模式,允许用户在安装时选择是为当前用户安装还是为每台机器安装。请注意,即使用户只想为当前用户安装,该模式也需要管理员权限。
安装程序元数据将根据用户的选择保存在
HKLM
或HKCU
注册表路径下。
Allowlist配置
Allowlist配置. 请查看 Cargo 允许列表特性.
注意事项
- 没有自己的 allowlist 选项的端点默认为启用。
- 只有"选择加入",没有"选择退出"。将选项设置为
false
无效。
示例
"app-all": true
将使hide端点可用,无论允许列表中的hide
设置为false
还是true
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all | boolean | false | 使用此标记可启用所有 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 | boolean | false | 使用此标志可启用所有文件系统 API 功能。 |
readFile | boolean | false | 从本地文件系统读取文件。 |
writeFile | boolean | false | 将文件写入本地文件系统。 |
readDir | boolean | false | 从本地文件系统读取目录 |
copyFile | boolean | false | 从本地文件系统复制文件 |
createDir | boolean | false | 从本地文件系统创建目录 |
removeDir | boolean | false | 从本地文件系统中删除目录。 |
removeFile | boolean | false | 从本地文件系统中删除文件。 |
renameFile | boolean | false | 重命名本地文件系统中的文件 |
exists | boolean | false | 检查本地文件系统中是否存在路径。 |
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 | boolean | false | 使用此标记可启用所有窗口 API 功能。 |
create | boolean | false | 允许动态创建窗口。 |
center | boolean | false | 允许将窗口居中。 |
requestUserAttention | boolean | false | 允许请求用户关注窗口。 |
setResizable | boolean | false | 允许设置窗口的可调整大小标志。 |
setTitle | boolean | false | 允许更改窗口标题。 |
maximize | boolean | false | 允许最大化窗口。 |
unmaximize | boolean | false | 允许取消窗口最大化。 |
minimize | boolean | false | 允许最小化窗口。 |
unminimize | boolean | false | 允许取消窗口最小化。 |
show | boolean | false | 允许显示窗口。 |
hide | boolean | false | 允许隐藏窗口。 |
close | boolean | false | 允许关闭窗口。 |
setDecorations | boolean | false | 允许设置窗口的装饰标志。 |
setAlwaysOnTop | boolean | false | 允许设置窗口的 always_on_top 标志。 |
setContentProtected | boolean | false | 允许防止其他应用程序捕获窗口内容。 |
setSize | boolean | false | 允许设置窗口大小。 |
setMinSize | boolean | false | 允许设置窗口最小尺寸。 |
setMaxSize | boolean | false | 允许设置窗口最大尺寸。 |
setPosition | boolean | false | 允许更改窗口的位置。 |
setFullscreen | boolean | false | 允许设置窗口的全屏标志。 |
setFocus | boolean | false | 允许聚焦窗口。 |
setIcon | boolean | false | 允许更改窗口图标。 |
setSkipTaskbar | boolean | false | 允许设置窗口的 skip_taskbar 标志。 |
setCursorGrab | boolean | false | 允许抓取光标。 |
setCursorVisible | boolean | false | 允许设置光标可见度。 |
setCursorIcon | boolean | false | 允许更改光标图标。 |
setCursorPosition | boolean | false | 允许设置光标位置。 |
setIgnoreCursorEvents | boolean | false | 允许忽略光标事件。 |
startDragging | boolean | false | 允许在窗口上开始拖动。 |
print | boolean | false | 允许打开系统对话框打印窗口内容。 |
ShellAllowlist配置
shell API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
scope | ShellAllowlistScope | [] | 二进制执行 API 的访问范围。辅助进程已自动启用。 |
all | boolean | false | 使用此标记可启用所有 shell API 功能。 |
execute | boolean | false | 开启二进制执行。 |
sidecar | boolean | false | 启用辅助进程执行,允许 JavaScript 层生成一个辅助进程命令,这是一个随应用程序一起发布的可执行文件。更多信息,请参阅 嵌入外部二进制文件. |
open | ShellAllowlistOpen | false | 使用用户的默认应用程序打开URL。 |
ShellAllowlistScope
Shell 范围定义。这是一个命令名称和相关 CLI 参数的列表,用于限制从 webview 访问 API。
ShellAllowedCommand
允许 webview API 执行的命令。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
name | string (必填) | null | 允许 shell 命令配置的名称。 该名称将在 webview API 中使用,以调用该命令和任何指定参数。 |
cmd | string | null | 命令名称。可以以解析系统基本目录的变量开头。变量有: $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 | ShellAllowedArgs | false | 执行命令时允许使用的参数。 |
sidecar | boolean | false | 如果该命令是一条辅助命令。 |
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 | boolean | false | 使用此标志可启用所有对话 API 功能。 |
open | boolean | false | 允许 API 打开一个对话窗口来选择文件。 |
save | boolean | false | 允许 API 打开对话窗口,选择保存文件的位置。 |
message | boolean | false | 允许 API 显示消息对话窗口。 |
ask | boolean | false | 允许 API 显示带有是/否按钮的对话窗口。 |
confirm | boolean | false | 允许 API 显示带有确定/取消按钮的对话窗口。 |
HttpAllowlist配置
HTTP API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
scope | HttpAllowlistScope | [] | HTTP API 的访问范围。 |
all | boolean | false | 使用此标志可启用所有 HTTP API 功能。 |
request | boolean | false | 允许发送 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 | boolean | false | 使用此标志可启用所有通知 API 功能。 |
GlobalShortcutAllowlist配置
全局快捷 API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all
| boolean | false | 使用此标志可启用所有全局快捷 API 功能。 |
OsAllowlist配置
操作系统 API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all | boolean | false | 使用此标志可启用所有操作系统 API 功能。 |
PathAllowlist配置
路径 API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all | boolean | false | 使用此标志可启用所有路径 API 功能。 |
ProtocolAllowlist配置
自定义协议的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
assetScope | FsAllowlistScope | [] | 资源(例如文件、图像、音频、视频等)协议的访问范围。 |
all | boolean | false | 使用此标志可启用所有自定义协议。 |
asset | boolean | false | 启用资源协议。 |
ProcessAllowlist配置
进程 API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all | boolean | false | 使用此标志可启用所有进程 API。 |
relaunch | boolean | false | 启用重新启动 API。 |
relaunchDangerousAllowSymlinkMacos | boolean | false | 危险选项,允许 macOS 在二进制文件包含符号链接的情况下重新启动。 这是因为 macOS 的符号链接保护较少。强烈建议不要设置此标记,除非你有非常特殊的原因,并了解其影响。 |
exit | boolean | false | 启用退出 API。 |
ClipboardAllowlist配置
剪贴板 API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all | boolean | false | 使用此标志可启用所有剪贴板 API。 |
writeText | boolean | false | 启用剪贴板的 writeText API。 |
readText | boolean | false | 启用剪贴板的 readText API。 |
AppAllowlist配置
应用程序 API 的允许列表。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
all | boolean | false | 使用此标志可启用所有应用程序 API。 |
show | boolean | false | 启用应用程序的show API。 |
hide | boolean | false | 启用应用程序的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 | boolean | false | 使用自定义协议时冻结 Object.prototype 。 |
dangerousDisableAssetCspModification | DisabledCspModificationKind | false | 禁用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 | string | null | 允许使用的 URL 方案。默认情况下,允许所有模式。 |
domain | string (必填) | null | 允许使用的域名。 |
windows | string[] (必填) | null | 此作用域适用的窗口标签列表。 |
plugins | string[] | [] | 此作用域允许使用的插件列表。 |
enableTauriAPI | boolean | false | 允许访问 Tauri API。 |
Updater配置
更新器配置对象。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
active | boolean | false | 更新器是否处于活动状态。 |
dialog | boolean | true | 如果禁用,则显示内置对话框或使用事件系统。 |
endpoints | array ? | null | 更新器端点。在生产过程中使用 TLS。 更新器 URL 可以包含以下变量: - {{current_version}}: 请求更新的应用程序版本 - {{target}}: 操作系统名称( linux 、windows 或 darwin 中的一种)。- {{arch}}: 机器的架构( x86_64 、i686 、aarch64 或 armv7 之一)。# 示例 - "https://my.cdn.com/latest.json": 是一个原始 JSON 端点,可返回每个平台的最新版本和下载链接。 - "https://updates.app.dev/{{target}}?version={{current_version}}&arch={{arch}}": 具有位置和查询字符串参数的专用API。 |
pubkey | string | null | 签名公用密钥。 |
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 | boolean | false | 布尔值,用于确定图像是否代表 macOS 上的模板图片。 |
boolean | true | 一个布尔值,用于确定在 macOS 上左键单击托盘图标时是否显示菜单。 | |
title | string | null | MacOS 托盘标题 |
Build配置
构建配置。
类型: object
属性名 | 类型 | 默认 | 描述 |
---|---|---|---|
runner | string | null | 用于构建和运行应用程序的二进制文件。 |
devPath | AppUrl | 查看 | 在开发过程中加载的应用程序资源或 URL 的路径。 这通常是指向开发服务器的 URL,开发服务器通过实时重载为您的应用程序资源提供服务。大多数现代 JavaScript包都提供了默认启动开发服务器的方法。 有关如何设置开发服务器的示例,请参阅 vite、Webpack DevServer 和 sirv。 |
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 | array | null | 传递给cargo 命令行的功能。 |
withGlobalTauri | boolean | false | 我们是否应该在 window.__TAURI__ 上注入 Tauri API。 |
AppUrl
定义要嵌入应用程序的 URL 或资源。
可以是以下任何一种类型:
WindowUrl
: 应用程序的外部 URL 或包含应用程序资源的目录路径。string[]
: 要嵌入应用程序的文件数组。
BeforeDevCommand
在 tauri dev
之前运行的 shell 命令
可以是以下任何一种类型:
string
: 使用默认选项运行给定的脚本。-
{ "script": string, "cwd": string, "wait": boolean }
: 使用自定义选项运行给定的脚本。属性名 类型 默认 描述 script
string (必填) 要执行的脚本。 cwd
string null 当前工作目录。 wait
boolean false
tauri dev
是否应等待命令执行完毕。默认为false
。
HookCommand
描述 CLI 钩子触发时要执行的 shell 命令。
可以是以下任何一种类型:
string
: 使用默认选项运行给定的脚本。-
{ "script": string, "cwd": string }
: 使用自定义选项运行给定的脚本。属性名 类型 默认 描述 script
string (必填) 要执行的脚本 cwd
string null 当前工作目录。
Plugin配置
插件配置保存了一个 HashMap,它将插件名称映射到其配置对象。
类型: object