当前位置: 首页 > news >正文

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

请添加图片描述

“如果结果不如你所愿,就在尘埃落定前奋力一搏。”——《夏目友人帐》
“有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。”——《十宗罪》
“维持现状意味着空耗你的努力和生命。”——纪伯伦

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的配置文件
  • 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)。误判率指的是错误地认为某个元…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展&#xff0c;养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下&#xff0c;而且难以实现精准监控和管理。为了提升尾水处理的效果和效率&#xff0c;同时降低人力成本&#xff0c;某大型水产养殖企业决定…...

【java】【服务器】线程上下文丢失 是指什么

目录 ■前言 ■正文开始 线程上下文的核心组成部分 为什么会出现上下文丢失&#xff1f; 直观示例说明 为什么上下文如此重要&#xff1f; 解决上下文丢失的关键 总结 ■如果我想在servlet中使用线程&#xff0c;代码应该如何实现 推荐方案&#xff1a;使用 ManagedE…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

职坐标物联网全栈开发全流程解析

物联网全栈开发涵盖从物理设备到上层应用的完整技术链路&#xff0c;其核心流程可归纳为四大模块&#xff1a;感知层数据采集、网络层协议交互、平台层资源管理及应用层功能实现。每个模块的技术选型与实现方式直接影响系统性能与扩展性&#xff0c;例如传感器选型需平衡精度与…...