核弹级高级配置——JSON 格式 Tauri2 配置,不懂不要碰
入口
软件配置页面的右上角三条横线图标 → 弹出菜单里的"更多配置"。
打开后你会看到一个 JSON 编辑器,内容是 Tauri2 的 tauri.conf.json 配置文件。PakePlus 文档标注为"核弹级、不懂不要碰"——不是开玩笑。
为什么是"核弹级"
标准配置面板(APP 名称、窗口模式、JS 注入等)是 PakePlus 帮你封装好的、经过验证的安全参数。而"更多配置"里的 JSON 是直接透传给 Tauri2 的原始配置:
| 情况 | 后果 |
|---|---|
| JSON 语法错(少逗号、引号不闭合) | 编译直接失败 |
| 字段名写错 | 可能报错或静默忽略 |
| 配置了不兼容 Tauri2 版本的字段 | APP 启动即崩溃 |
| 放宽了文件系统权限 | 恶意 JS 可能借此操作本地敏感文件 |
PakePlus 作为 GUI 工具,最大的卖点就是"不用写代码、不用配 Tauri"——而"更多配置"相当于把你扔回了命令行 Tauri 的世界。
Tauri2 配置文档参考
PakePlus 的"更多配置" JSON 格式 完全对应 Tauri2 官方的 tauri.conf.json。参考文档:
- Tauri2 配置参考(官方):对应的访问地址
里面详细列出了每个字段的含义、类型、默认值、可选值。
哪些配置值得在"更多配置"里改
标准配置面板覆盖不到、但你可能需要的高级场景:
1. 系统托盘图标 + 菜单
{
"app": {
"windows": [/* ... */],
"trayIcon": {
"iconPath": "icons/tray-icon.png",
"iconAsTemplate": true,
"menuOnLeftClick": false,
"tooltip": "我的桌面应用"
}
}
}
托盘图标需要额外准备一个 PNG 文件(建议 16×16 或 32×32),放在 PakePlus 项目的 assets 目录里。
2. 托盘菜单
{
"app": {
"trayIcon": {
// ... 如上
"menu": [
{ "id": "show", "label": "显示窗口" },
{ "id": "hide", "label": "隐藏窗口" },
"Separator",
{ "id": "quit", "label": "退出" }
]
}
}
}
3. 窗口快捷键(全局唤起)
{
"app": {
"globalShortcut": {
"show-hide": "CmdOrCtrl+Shift+P"
}
}
}
注册后,无论焦点在哪个应用,按 Ctrl+Shift+P 都能唤起或隐藏这个 PakePlus APP。
4. 文件系统权限放宽
Tauri2 默认文件系统访问受限,只允许访问特定安全目录。如果你的 APP 需要读写任意路径:
{
"bundle": {
"active": true
},
"plugins": {
"fs": {
"scope": ["**"]
}
}
}
⚠️ "scope": ["**"] 等于允许访问用户电脑上所有文件——只在你完全信任注入的 JS 代码时用。
5. 自定义 URL Scheme
让 PakePlus APP 响应自定义协议(比如 myapp://):
{
"bundle": {
"urlSchemes": ["myapp"]
}
}
之后从浏览器里点 myapp://open?page=dashboard,就能唤起你的 PakePlus APP。
6. 窗口不可调整大小
{
"app": {
"windows": [
{
// ... 其他配置
"resizable": false
}
]
}
}
7. 最小尺寸限制
{
"app": {
"windows": [
{
// ... 其他配置
"minWidth": 400,
"minHeight": 300
}
]
}
}
还有一个"更多配置":插件权限
PakePlus 配置页面还有另一个"更多配置"区域(文档标注"核弹,不懂不要碰"),是插件级的 JSON 配置——对应 Tauri2 的 capabilities/default.json:
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Default permissions for your app",
"windows": ["main"],
"permissions": [
"core:default",
"core:window:default",
"core:webview:default",
"plugin:fs:default",
"plugin:dialog:default"
]
}
这里控制哪些 Tauri2 插件 API 是可用的。比如要让 APP 能发 HTTP 请求,需要加 plugin:http:default;要让 APP 能读写文件,需要加 plugin:fs:default。
同样——写错直接编译失败。
什么时候才值得碰
| 情况 | 建议 |
|---|---|
| 纯网页壳、只需要标准配置 | ❌ 完全不需要碰 |
| 需要托盘图标 / 全局快捷键 | ⚠️ 需要但要小心 |
| 需要绕过浏览器 CORS 发 HTTP | ⚠️ 考虑用标准配置里的 TauriApi 开关 |
| 想完全复刻 Tauri CLI 的能力 | ⚠️ 建议直接转用 Tauri CLI 路线(你能接受命令行就不怕配置复杂) |
| 打包的是自己写的、完全可控的应用 | ✅ 可以放心玩 |
安全总结
"核弹级"这个标签不是吓唬人。它背后对应的是 Tauri2 原始配置的完整能力——写对了能做到一切,写错了一切崩溃。PakePlus 的大部分用户永远不需要进这个区域。但如果你真的需要它提供的能力,最好先在本地小项目上跑通配置,再用到正式项目上。