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 UnoCSS from 'unocss/vite' import vueJsx from '@vitejs/plugin-vue-jsx' import vueDevTools from 'vite-plugin-vue-devtools' // @ts-expect-error process is a nodejs global const host = process.env.TAURI_DEV_HOST // https://vitejs.dev/config/ export default defineConfig(async () => ({ plugins: [ vue(), UnoCSS(), vueJsx({}), vueDevTools(), AutoImport({ imports: [ 'vue', { 'naive-ui': ['useDialog', 'useMessage', 'useNotification', 'useLoadingBar'], }, ], }), Components({ resolvers: [NaiveUiResolver()], }), ], // 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: 5005, 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/**'], }, }, }))