Stack:
- vite
- tauri
- tailwindcss
- vue
- daisyUI
- iconify
Let's start
pnpm create tauri-app
✔ Project name · PackageWatcher
✔ Package name · packagewatcher
✔ Identifier · com.packagewatcher.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 · JavaScript
cd PackageWatcher
pnpm i
code "./package.json"
"dependencies": {
"vue": "^3.5.13",
"@tauri-apps/api": "^2.1.1",
"@tauri-apps/plugin-shell": "^2.0.1"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.1",
"vite": "^6.0.1",
"@tauri-apps/cli": "^2.1.0"
}
pnpm i
pnpm i tailwindcss@next @tailwindcss/vite@next daisyui@alpha
{
"name": "packagewatcher",
"private": true,
"version": "0.1.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"tauri": "tauri"
},
"dependencies": {
"@tailwindcss/vite": "4.0.0-beta.4",
"@tauri-apps/api": "^2.1.1",
"@tauri-apps/plugin-shell": "^2.0.1",
"daisyui": "5.0.0-alpha.42",
"tailwindcss": "4.0.0-beta.4",
"vue": "^3.5.13"
},
"devDependencies": {
"@tauri-apps/cli": "^2.1.0",
"@vitejs/plugin-vue": "^5.2.1",
"vite": "^6.0.1"
}
}
some more install:
pnpm dlx oxlint@latest
pnpm i -d prettier
Now, init config
new .prettierrc.json
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"singleQuote": true,
"printWidth": 100,
"useTabs": true
}
open vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import tailwindcss from '@tailwindcss/vite'
const host = process.env.TAURI_DEV_HOST
export default defineConfig(async () => ({
plugins: [vue(), tailwindcss()],
clearScreen: false,
server: {
port: 1420,
strictPort: true,
host: host || false,
hmr: host
? {
protocol: 'ws',
host,
port: 1421,
}
: undefined,
watch: {
ignored: ['**/src-tauri/**'],
},
},
}))
open index.html
add:
<link rel="stylesheet" href="./index.css">
in the header and
<span class="loading loading-spinner text-warning mx-auto"></span>
somewhere for testing purpose.
new index.css (near index.html):
@import "tailwindcss";
@plugin "daisyui" {
logs: true;
root: ":root";
themes: light --default, dark --prefersdark, cupcake;
}
Test:
pnpm tauri dev
Now I have daisyUI 5 in Tailwindcss 4 + vite 6 + vue 3.5 and Iconify in Tauri 2