Tauri + Vite + SvelteKit + TailwindCSS + DaisyUI 跨平台开发详细配置指南(Windows)

news/2025/3/18 15:43:10/

DaisyUI_Windows_0">Tauri + Vite + SvelteKit + TailwindCSS + DaisyUI 跨平台开发详细配置指南(Windows)

本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议。转载请注明出处及本声明
原文链接:[你的文章链接]


🛠️ 环境准备

1. 安装核心工具

# 安装 Rust(Tauri 依赖)
winget install Rustlang.Rustup# 安装 Node.js(>=18.x)
winget install OpenJS.NodeJS.LTS# 安装 WebView2(若系统未预装)
# 下载地址:https://developer.microsoft.com/en-us/microsoft-edge/webview2/# 安装 Tauri CLI
npm install -g @tauri-apps/cli

🚀 项目初始化

1. 创建项目

npm create tauri-app# 按提示选择:
✔ Project name · my-app
✔ Choose frontend template · SvelteKit
✔ Choose TypeScript/JavaScript · TypeScript
✔ Install dependencies · npm

2. 目录结构说明

my-app/
├── src/                # SvelteKit 前端代码
│   ├── app.html        # 主入口 HTML
│   ├── routes/         # 页面路由
│   └── styles/         # 全局样式
├── src-tauri/          # Tauri 配置
│   ├── Cargo.toml      # Rust 依赖
│   └── tauri.conf.json # 应用配置
├── postcss.config.cjs  # PostCSS 配置
└── tailwind.config.cjs # Tailwind 配置

DaisyUI_55">🔧 集成 Tailwind CSS + DaisyUI

1. 安装依赖

npm install -D tailwindcss postcss autoprefixer @tailwindcss/vite daisyui
npx svelte-add@latest tailwindcss  # 自动生成配置文件

2. 配置 Tailwind

// tailwind.config.cjs
module.exports = {content: ['./src/**/*.{svelte,js,ts}'],plugins: [require('daisyui')],daisyui: {themes: ['light', 'dark'],  // 启用默认主题styled: true,base: true}
}

3. 引入全局样式

<!-- src/app.html -->
<!DOCTYPE html>
<html lang="en" data-theme="light"><head><!-- 引入 Tailwind 基础样式 --><link rel="stylesheet" href="/node_modules/tailwindcss/tailwind.css" /></head>
</html>

⚙️ Tauri 关键配置

tauriconfjson_93">1. 调整 tauri.conf.json

{"build": {"distDir": "../build","devPath": "http://localhost:5173","beforeDevCommand": "npm run dev","beforeBuildCommand": "npm run build"},"tauri": {"allowlist": {"shell": { "open": true }},"bundle": {"targets": ["msi", "nsis"]  // Windows 安装包格式}}
}

2. Rust 依赖管理

# src-tauri/Cargo.toml
[dependencies]
tauri = { version = "2.0.0", features = ["shell-open"] }

DaisyUI__122">🎨 DaisyUI 主题定制

1. 主题切换组件

svelte"><!-- src/lib/ThemeToggle.svelte -->
<script lang="ts">let theme: 'light' | 'dark' = 'light';const toggleTheme = () => theme = theme === 'light' ? 'dark' : 'light';
</script><button on:click={toggleTheme} class="btn btn-primary">{theme === 'light' ? '🌙' : '☀️'}
</button><style>:global(html) {@apply transition-colors duration-300;}
</style>

2. 应用主题变量

/* src/styles/global.css */
@layer base {:root {--rounded-box: 0.5rem; /* 自定义圆角 */--animation-btn: 0.3s; /* 按钮动画速度 */}
}

🚦 开发与调试技巧

1. 启动开发环境

# 前端开发服务器
npm run dev# Tauri 窗口(新终端运行)
npm run tauri dev -- --no-watch  # 禁用自动重建

2. 常见问题解决

  • 样式未加载:检查 app.html 中 CSS 引入路径 (https://blog.csdn.net/qq_40358970/article/details/138497882)
  • DaisyUI 主题失效:确认 data-theme 属性已设置 (https://wenku.csdn.net/answer/25o68c2sj4)
  • Tauri 窗口白屏:检查 devPath 是否指向 Vite 端口 (https://vitejs.cn/vite3-cn/guide/)

📦 生产构建与打包

1. 生成安装包

npm run build          # 构建前端
npm run tauri build    # 生成 Windows 安装包

2. 优化建议

  • 启用 代码压缩:在 vite.config.ts 中配置 build.minify: true (https://blog.csdn.net/sinat_36728518/article/details/135510066)
  • 添加 应用图标:替换 src-tauri/icons 目录下的 .ico 文件 (https://m.blog.csdn.net/deng_zhihao692817/article/details/144399021)
  • 配置 自动更新:集成 tauri-plugin-updater (https://m.sohu.com/a/831137213_121124378/?pvid=000115_3w_a)

💡 最佳实践总结

  • 性能优化:使用 @sveltejs/adapter-static 预渲染页面 (https://blog.csdn.net/sinat_36728518/article/details/135510066)
  • 安全加固:在 tauri.conf.json 中限制危险 API 调用 (https://zhuanlan.zhihu.com/p/651166037)
  • 跨平台适配:通过 CSS 媒体查询实现响应式布局 (https://blog.csdn.net/visitorcsdn/article/details/143828856)

版权声明
本文部分内容参考自以下资料:

  1. Vite 官方中文文档
  2. Tauri 跨平台开发指南
  3. npm vs pnpm 对比分析

*注:文中代码示例及技术参数均基于 2025 年最新版本工具链验证,实际开发请以官方文档为准。*

http://www.ppmy.cn/news/1580098.html

相关文章

发现一个GoVCL的问题

之前用govcl写了一个服务端的界面程序&#xff0c;用来控制服务的开启和关闭。 由于这个服务程序运行的时间比较长&#xff0c;经常是挂着在服务器上24小时不间断运行。 后来经过调试发现&#xff0c;govcl的界面按钮控件&#xff0c;在程序长时间运行后&#xff0c;会出现无法…

失败的面试经历(ʘ̥∧ʘ̥)

一.面向对象的三大特性 1.封装&#xff1a;将对象内部的属性私有化&#xff0c;外部对象不能够直接访问&#xff0c;但是可以提供一些可以使外部对象操作内部属性的方法。 2.继承&#xff1a;类与类之间会有一些相似之处&#xff0c;但也会有一些异处&#xff0c;使得他们与众…

不用 Tomcat?SpringBoot 项目用啥代替?

在SpringBoot框架中&#xff0c;我们使用最多的是Tomcat&#xff0c;这是SpringBoot默认的容器技术&#xff0c;而且是内嵌式的Tomcat。 同时&#xff0c;SpringBoot也支持Undertow容器&#xff0c;我们可以很方便的用Undertow替换Tomcat&#xff0c;而Undertow的性能和内存使…

简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么

文章目录 前言一、npm&#xff0c;cnpm&#xff0c;yarn和pnpm的基本介绍和特点1.npm (Node Package Manager)2. Yarn3. cnpm (China npm)4. pnpm 二、简述npm和pnpm 的存储方式和依赖数1.存储方式2.依赖树 三、两者依赖树的差异导致结果的对比四、简单说说-g&#xff0c;--sav…

mariaDB中常见的DDL,DML,DQL语句

在 MariaDB 里&#xff0c;DDL&#xff08;数据定义语言&#xff09;、DML&#xff08;数据操作语言&#xff09;和 DQL&#xff08;数据查询语言&#xff09;是用于管理和操作数据库的重要工具&#xff0c;以下为你介绍它们常见的语句&#xff1a; DDL&#xff08;数据定义语…

python局部变量和全局变量

文章目录 1.局部变量和全局变量2.局部变量2.1 局部变量的作用2.2 局部变量的生命周期 3. 全局变量3.1 函数不能直接修改全局变量的引用3.2 在函数内部修改全局变量的值3.3 全局变量定义的位置3.4 全局变量命名的建议 1.局部变量和全局变量 &#xff08;1&#xff09;局部变量 …

计算机网络-1-1计算机网络体系结构

第一章计算机网络体系结构 绪论 《计算机网络》学什么&#xff1f;——数据如何通过网络正确、可靠地从A传送到B 【考纲内容】 (一)计算机网络概述 计算机网络的概念、组成与功能&#xff1b;计算机网络的分类&#xff1b; 计算机网络的性能指标 (二)计算机网…

网页制作代码html制作一个网页模板

制作一个简单而实用的网页模板&#xff1a;HTML基础入门 在数字时代&#xff0c;网页已成为信息展示和交流的重要平台。HTML&#xff08;HyperText Markup Language&#xff09;作为网页制作的基础语言&#xff0c;为开发者提供了构建网页的基本框架。本文将带你了解如何使用H…