Tauri打包配置及报错处理

Tauri打包配置及报错处理

创建应用

lua 复制代码
pnpm create tauri-app

打包

修改tauri.conf.json

javascript 复制代码
Error You must change the bundle identifier in `tauri.conf.json > tauri > bundle > identifier`. The default value `com.tauri.dev` is not allowed as it must be unique across applications.

改成这个

javascript 复制代码
"identifier": "com.tauri.build",
javascript 复制代码
 failed to get `serde` as a dependency of package `app v0.0.0

常见报错处理

下载这个 github.com/wixtoolset/... 我们把"github.com/wixtoolset/..."这个链接的压缩包下载到本地。然后在C:\Users\你的用户名\AppData\Local下找到tauri文件夹,如果没有则创建一个名为tauri的文件夹,在文件夹内再创建一个WixTools目录,将下载的压缩包解压到这个文件夹里面(创建依赖包路径: C:\Users\用户\AppData\Local\tauri\WixTools)。然后再回到VSCode运行打包命令。这个时候就可以打包成功了。

打包成功后,打开打包生成的目录,就可以看到一个.msi后缀结尾的安装文件tauri-app_0.0.0_x64_en-US.msi(scr-tauri/target/release/bundle/msi/tauri-app_0.0.0_x64_en-US.msi),双击就可以安装了。还有一个可执行包tauri-app.exe(scr-tauri/target/release/tauri-app.exe)。至此,整个创建到打包的流程就完成了。

Windows下Rust安装x86_64-pc-windows-gnu版本

Rust官网:rust-lang.org

打开 rust.init

直接安装

javascript 复制代码
rustup toolchain install stable-x86_64-pc-windows-gnu

下载完成后

javascript 复制代码
rustup default stable-x86_64-pc-windows-gnu

再次报错

javascript 复制代码
cargo update
javascript 复制代码
cargo clean
javascript 复制代码
cargo build

安装

tauri.app/zh-cn/v1/gu...

1. Microsoft Visual Studio C++ 生成工具

您需要安装 Microsoft C++ 生成工具。 最简单的方法是下载 Visual Studio 2022 生成工具。 进行安装选择时,请勾选 "C++ 生成工具" 和 Windows 10 SDK。

列表 1-1:使用 Visual Studio 生成工具 2022 安装程序,并勾选 "C++ 构建工具" 和 "Windows 10 SDK"。

隐藏边框

编辑tauri.conf.json, 设置decorations: false隐藏自己的边框了栏

javascript 复制代码
{
  "windows": [
    {
        "decorations": false,
       ...
    }
  ]
}

定义自己的顶栏

javascript 复制代码
<!-- 注:通过设置"data-tauri-drag-region"注册拖动区域-->
<div data-tauri-drag-region class="titlebar">
  <div class="titlebar-button" id="titlebar-minimize">
    <img
      src="https://api.iconify.design/mdi:window-minimize.svg"
      alt="minimize"
    />
  </div>
  <div class="titlebar-button" id="titlebar-maximize">
    <img
      src="https://api.iconify.design/mdi:window-maximize.svg"
      alt="maximize"
    />
  </div>
  <div class="titlebar-button" id="titlebar-close">
    <img src="https://api.iconify.design/mdi:close.svg" alt="close" />
  </div>
</div>

绑定js方法

javascript 复制代码
import { appWindow } from '@tauri-apps/api/window'
document
  .getElementById('titlebar-minimize')
  .addEventListener('click', () => appWindow.minimize())
document
  .getElementById('titlebar-maximize')
  .addEventListener('click', () => appWindow.toggleMaximize())
document
  .getElementById('titlebar-close')
  .addEventListener('click', () => appWindow.close())

查看帮助

javascript 复制代码
npx @tauri-apps/tauricon --help

  Description
    Create all the icons you need for your Tauri app.

    "ICON-PATH" is the path to the source icon (default: 'app-icon.png').
    The icon needs to be either png (1240x1240 with transparency) or svg (square dimensions with transparency).

  Usage
    $ tauricon [ICON-PATH]

  Options
    --help, -h          Displays this message
    --log, l            Logging [boolean]
    --target, t         Target folder (default: 'src-tauri/icons')

** 生成好的图标默认放在 src-tauri/icons 目录下,在构建时包含在应用程序中。** 如果需要从其他位置获取图标,则可以编辑 src-tauri/tauri.conf.json 的以下部分:

javascript 复制代码
{
  "tauri": {
    "bundle": {
      "icon": [
        "icons/32x32.png",
        "icons/128x128.png",
        "icons/128x128@2x.png",
        "icons/icon.icns",
        "icons/icon.ico"
      ]
    }
  }
}

rust 加速update crates.io

在 $HOME/.cargo/config 需要新建config

javascript 复制代码
# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
#registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'ustc'
#replace-with = 'sjtu'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"
相关推荐
爱学习的程序媛1 小时前
【Web前端】JavaScript设计模式全解析
前端·javascript·设计模式·web
小码哥_常1 小时前
从SharedPreferences到DataStore:Android存储进化之路
前端
老黑1 小时前
开源工具 AIDA:给 AI 辅助开发加一个数据采集层,让 AI 从错误中自动学习(Glama 3A 认证)
前端·react.js·ai·nodejs·cursor·vibe coding·claude code
jessecyj2 小时前
Spring boot整合quartz方法
java·前端·spring boot
苦瓜小生2 小时前
【前端】|【js手撕】经典高频面试题:手写实现function.call、apply、bind
java·前端·javascript
天若有情6732 小时前
前端HTML精讲03:页面性能优化+懒加载,搞定首屏加速
前端·性能优化·html
踩着两条虫2 小时前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava
swipe3 小时前
AI 应用里的 Memory,不是“保存聊天记录”,而是管理上下文预算
前端·llm·agent
慧一居士3 小时前
nuxt3 项目和nuxt4 项目区别和对比
前端·vue.js
威联通安全存储3 小时前
破除“重前端、轻底层”的数字幻象:如何夯实工业数据的物理底座
前端·python