import { defineConfig } from "vite" import vue from "@vitejs/plugin-vue" import AutoImport from "unplugin-auto-import/vite" import Components from "unplugin-vue-components/vite" import { NaiveUiResolver } from "unplugin-vue-components/resolvers" import path from "path" const host = process.env.TAURI_DEV_HOST // https://vite.dev/config/ export default defineConfig(async () => ({ plugins: [ vue(), // 1. 自动导入 API AutoImport({ imports: [ "vue", // 自动导入 Vue 相关 API,如 ref, reactive 等 { "naive-ui": ["useDialog", "useMessage", "useNotification", "useLoadingBar"], }, ], // 可选:生成 TypeScript 类型声明文件 dts: "src/types/auto-imports.d.ts", }), // 2. 自动导入组件 Components({ resolvers: [NaiveUiResolver()], // 可选:生成 TypeScript 类型声明文件 dts: "src/types/components.d.ts", }), ], // 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, } : undefined, watch: { // 3. tell Vite to ignore watching `src-tauri` ignored: ["**/src-tauri/**"], }, }, resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, }))