Tauri教程-基础篇-第一节 Tauri项目创建及结构说明

“如果结果不如你所愿,就在尘埃落定前奋力一搏。”——《夏目友人帐》
“有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。”——《十宗罪》
“维持现状意味着空耗你的努力和生命。”——纪伯伦
第一节 项目创建及结构说明
推荐
Koi技术教程-Tauri-第二章 Tauri的业务架构
Koi技术教程-Tauri-第三章 Tauri的搭建环境
一. 概述
这一章节,我们来了解下如何创建一个Tauri的项目,熟悉下它的目录结构,以及如何运行和发布。
官方文档:https://tauri.app/start/create-project/
二. 创建项目
官方提供了一个“create-tauri-app ”工具来帮助我们创建一个基础版本的项目。
create-tauri-app 目前包含以下模板:无框架(纯HTML、CSS and JavaScript)、Vue.js、Svelte、React、SolidJS、Angular、Preact、Yew、Leptos 和 Sycamore。您还可以在 Awesome Tauri 仓库中找到或添加您自己的社区模板和框架。
当然若想在自己的前端项目中使用Tauri也是可以的,您可以 将 Tauri 添加到现有的项目中 以便快速地将现有代码库转换为 Tauri 应用。
1. 使用 create-tauri-app
1. 创建项目
这里使用 pnpm来创建项目,其他方式可参见官方文档:
pnpm create tauri-app
2. 选择适合自身项目的模板
✔ Project name · tauri-app01
✔ Identifier · com.tauri-app01.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · pnpm
✔ Choose your UI template · Vue - (https://vuejs.org/)
✔ Choose your UI flavor · TypeScript
3. 安装项目依赖
// cd 到项目目录下
cd tauri-app01
// 使用pnpm 安装项目依赖 为了保证安装速录可以设置仓库源
// pnpm config set registry https://registry.npmmirror.com
pnpm i
2. 使用 Tauri CLI
此方式主要用于在现有的项目中添加tauri,(现有的项目是前端的项目,不要辖理解)
1. 安装cll依赖包
包管理器安装 Tauri 的 CLI 工具
pnpm add -D @tauri-apps/cli@latest
2. 确认服务器的 URL
确定您的前端开发服务器的 URL。这个 URL 是 Tauri 用来加载您的内容的地址。例如,如果您正在使用 Vite,那么默认的 URL 是 http://localhost:5173 。
这里需要考虑你项目的访问不要有前缀,当然你也可以修改它以满足要求
3. 初始化Tauri项目配置
在项目的根目录下:
pnpm tauri init
过程中你需要选择一些内容:
✔ What is your app name? tauri-app01
✔ What should the window title be? tauri-app01
✔ Where are your web assets located? ..
✔ What is the url of your dev server? http://localhost:5173
✔ What is your frontend dev command? pnpm run dev
✔ What is your frontend build command? pnpm run build
三. 运行及构建项目
当您完成创建项目的步骤后, 你就可以运行它,以感受下它的能力,在 “创建项目” 这一个环节中,如果你使用的是create-tauri-app的方式基本不会出现什么问题,但你如果是基于cll 的方式来创建项目就需要关注下项目的复杂度,可能在这一环节无法运行,我更建议使用基于create-tauri-app的方式创建我们需要的项目后,再将原项目逐步迁移过来。(这里http的方式要注意:axiso,alove是不适用的请求工具类,需要改造,或许你可以通过一些方式解决,但不推荐)
我们使用vscode进行项目的开发;在使用之前你需要为你的vscode安装rust的环境:
- tauri
- rust-analyzer
1. 运行项目:
pnpm tauri dev
注意:pnpm dev 启动的是前端项目,有些人可能会考虑我只想调试前端项目,而不需要后端,这里目前来看是行不通的,它不太像uniapp那样提供多运行环境的支持。
首次启动时,是比较慢的(可以适当冲杯茶,放松一下,前提是你要保证你的机器连接互联网),不要轻易修改tauri下的文件,会重新加载,慢

2. 构建项目
pnpm tauri build
首次编译的时间会比较长,需要在对应的环境下编译需要的应用程序,在window下编程后的文件放在:src-tauri\target\release\bundle 下
- msi 安装文件
- nsis 安装文件
- src-tauri\target\release 下有一个exe的免安装程序
此时安装文件的步骤都是英文的,后续我们再探讨如何设定安装步骤及语言。
四. 项目目录结构
使用 create-tauri-app 创建的项目目录如下:
这里我们以 vite6,typescript 为例
- vscode
- node_modules
- public
- src
- src-tauri
- capabilities 能力(Capabilities)是tauri或插件所提供的,是一组权限
- default.json 权限配置文件
- gen
- schemas 存放描述文件
- icons 系统的图标,采用命令生成
- src 服务端代码的存放位置
- lib.rs 我们安装依赖的配置文件
- main.rs 主入口
- target 编译后的文件目录
- build.rs build的入口文件
- cargo.toml cargo的配置文件
- tauri.conf.json tauri的配置文件
- capabilities 能力(Capabilities)是tauri或插件所提供的,是一组权限
- index.html
- package.json
- tsconfig.json
- vite.config.ts
这里。vscode、node_modules、public、src、package.json 都是我们普遍了解的,如果你不清楚,你可以结束本次的学习,了解下如何构建前端项目,再回来继续学习。
src-tauri 是本项目的重点。在此目录中 capabilities、lib.rs、cargo.toml、tauri.conf.json、icons是我们重点关注的文件,后续章节中我们会反复应用。
相关文章:
Tauri教程-基础篇-第一节 Tauri项目创建及结构说明
“如果结果不如你所愿,就在尘埃落定前奋力一搏。”——《夏目友人帐》 “有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。”——《十宗罪》 “维持现状意味着空耗你的努力和生命。”——纪伯伦 Tauri 技术教程 * 第四章 Tauri的基础教程 第一节…...
计算机网络之---物理层标准与协议
常见的物理层标准 1. IEEE 802 标准 IEEE 802 是一系列定义局域网和城域网通信协议的标准,其中许多标准涉及到物理层的技术细节: IEEE 802.3 (Ethernet):定义了以太网的物理层规范,规定了如何通过电缆(例如同轴电缆…...
Idea日志乱码
问题描述 前提:本人使用windows Idea运行sh文件,指定了utf-8编码,但是运行过程中还是存在中文乱码 Idea的相关配置都已经调整 字体调整为雅黑 文件编码均调整为UTF-8 调整Idea配置文件 但是还是存在乱码,既然Idea相关配置已经…...
tk GMV MAX素材范围投放指南
Product GMy Max素材范围说明 Product GMy Max能自动获取带有相关商品锚点链接(无论是单个锚点还是多个锚点)的视频,并将其用于推广特定商品的广告素材,前提是这些视频已经获得广告授权。然而,请注意,多个…...
TANGO - 数字人全身动作生成
文章目录 一、关于 TANGO演示视频(YouTube)📝发布计划 二、⚒️安装克隆存储库构建环境 三、🚀训练和推理1、推理2、为自定义字符创建图形 一、关于 TANGO TANGO 是 具有分层音频运动嵌入 和 扩散插值的共语音手势视频再现 由东…...
springboot集成整合工作流,activiti审批流,整合实际案例,流程图设计,流程自定义,表单配置自定义,代码demo流程
前言 activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器,流行的前后端…...
Windows 10 ARM工控主板连接I2S音频芯片
在Windows工控主板应用中,音频功能是一项基本的需求,USB声卡在x86/x64 Windows系统上就可直接免驱使用,但这些USB声卡通常不提供ARM上的Windows系统驱动。本文将介绍如何利用安装在ARM上的Windows工控主板——ESM8400的I2S接口、连接WM8960音…...
单元测试MockitoExtension和SpringExtension
1. MockitoExtension MockitoExtension 是 JUnit 5 提供的一个扩展,用于支持 Mockito 的集成。它可以自动初始化标记为 Mock、InjectMocks 等的 Mockito 对象,而不需要显式调用 MockitoAnnotations.initMocks(this)。 主要特点: 自动初始化 Mock、Spy…...
网络安全 | WAF防护开通流程与技术原理详解
关注:CodingTechWork 引言 随着互联网安全形势的日益严峻,Web应用防火墙(WAF, Web Application Firewall)逐渐成为网站和应用的标准防护措施。WAF能够有效识别和防止如SQL注入、跨站脚本攻击(XSS)、恶意流…...
模型 断裂点理论(风险控制)
系列文章 分享模型,了解更多👉 模型_思维模型目录。设置小损失,防止大风险。 1 断裂点理论的应用 1.1 电路系统中的保险丝应用 背景介绍: 在工程学中,电路系统是现代科技中不可或缺的一部分,广泛应用于各…...
02.MPLS动态LSP配置实验
MPLS动态LSP配置实验 MPLS动态LSP配置实验基本配置MPLS部分查看LDP会话基本信息查看详细信息查看MPLS动态LSP配置实验 基本配置 接口地址和OSPF配置,省略!全网互通! 注意:8.8.8.8和9.9.9.9也要宣告! MPLS部分 [ar1]mpls lsr-id 1.1.1.1 [ar1]mpls Info: Mpls starting,…...
MySQL 中的Buffer Pool
深入解析 MySQL Buffer Pool:优化数据库性能的核心 引言 在关系型数据库管理系统(RDBMS)中,磁盘I/O通常是性能瓶颈之一。为了缓解这个问题,MySQL的InnoDB存储引擎引入了Buffer Pool这一概念。Buffer Pool作为内存中的…...
修复微pe系统uefi引导损坏windows failed to start...
打开微pe,点右下角生成iso镜像 再打开iso镜像,把里面所有文件复制到微pe启动盘的EFI分区(使用diskgenius才能看到该分区) 虚拟机启动测试...
【Vue3中使用crypto-js】crypto-js加密解密用法
目录 1、安装crypto2、创建crypto.js文件3、在main.js主文件中进行引用4、页面中进行使用5、实现效果展示6、加密模式解析以及iv参数使用 1、安装crypto npm install crypto-js 如果是在Typescript版本需要再安装 npm install --save types/crypto-js2、创建crypto.js文件 注…...
JavaWeb开发(九)JSP技术
1. JavaWeb JSP技术 1.1. JSP简介 1.1.1. 什么是JSP JSP全名为Java Server Page 是为了简化servlet的工作而出现的替代品。在JSP中java代码与HTML共同存在,其中HTML代码用于展示静态的内容,java代码用来展示动态的内容。 1.1.2. 为什么出现JSP技术 19…...
PADS Lyout布局布线实战技巧:布线优化及解决碎铜问题
1、通过加过孔 通过过孔复制 复制粘贴 也可以选择网络,选择右键,添加过孔来。 在一些孤铜的地方加过孔,加不了过孔的情况下,怎么办? 2、通过挖掉,不让铜在孤零零的地方。 右键,选择矩形&a…...
上下游服务间解耦的技术与管理
一、解耦为何至关重要 在当今软件研发的复杂生态中,耦合问题如影随形,困扰着众多开发者与企业。当多个模块、系统或团队紧密交织,相互依赖程度不断攀升,仿佛一张错综复杂的网,牵一发而动全身。就拿电商系统来说&#…...
如何解决HTML和CSS相关的问题,什么情况下会导致元素被遮挡?
在开发过程中,HTML 和 CSS 中的元素遮挡问题通常是由于布局、定位、层级等因素导致的。在使用 Vue.js 时,这些问题依然常见,尤其是涉及到动态渲染、条件渲染和组件嵌套的场景。以下是一些常见的导致元素被遮挡的原因,并通过 Vue.j…...
Infineon PSoC 4 CapSense ModusToolbox IDE - 系统生态篇
本文档说明了 ModusToolbox 软体环境的 4 个层面,该环境为 CapSense 设备和生态系统提供支援。本文是 Infineon PSoC 4 CapSense ModusToolbox IDE-系统介绍的延伸篇 (Infineon PSoC 4 CapSense ModusToolbox IDE -系统介绍篇 - 大大通(简体站))。 什么是ModusToolb…...
[算法]布隆过滤器
布隆过滤器(Bloom Filter)是一种空间效率很高的概率型数据结构,它可以用来检测一个元素是否在一个集合中。它的特点是高效地插入和查询,但是有一定的误判率(False Positive)。误判率指的是错误地认为某个元…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
如何做好一份技术文档?从规划到实践的完整指南
如何做好一份技术文档?从规划到实践的完整指南 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...
