feat: initialize app with routing, query management, and UI framework

- Replace Vite boilerplate with React Router for page navigation
- Add React Query for server state and cache management
- Integrate shadcn/ui component library with Tailwind CSS v4
- Configure @/ path alias for clean module imports
- Set up Vite dev proxy to API backend
- Remove default App.css, App.tsx, and react.svg assets
This commit is contained in:
2026-05-24 19:19:08 +08:00
parent 072f959949
commit 60e83d49dd
37 changed files with 6288 additions and 214 deletions
+21 -16
View File
@@ -1,32 +1,37 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite"
import react from "@vitejs/plugin-react"
import tailwindcss from "@tailwindcss/vite"
import path from "path"
// @ts-expect-error process is a nodejs global
const host = process.env.TAURI_DEV_HOST;
const host = process.env.TAURI_DEV_HOST
const apiTarget = process.env.VITE_API_BASE || "http://localhost:8080"
// https://vite.dev/config/
export default defineConfig(async () => ({
plugins: [react()],
plugins: [react(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
//
// 1. prevent Vite from obscuring rust errors
clearScreen: false,
// 2. tauri expects a fixed port, fail if that port is not available
server: {
port: 1420,
strictPort: true,
host: host || false,
hmr: host
? {
protocol: "ws",
host,
port: 1421,
}
? { protocol: "ws", host, port: 1421 }
: undefined,
watch: {
// 3. tell Vite to ignore watching `src-tauri`
ignored: ["**/src-tauri/**"],
},
proxy: {
"/api": {
target: apiTarget,
changeOrigin: true,
},
},
},
}));
}))