import { defineConfig, searchForWorkspaceRoot } from 'vite'; import tailwindcss from '@tailwindcss/vite'; import { sveltekit } from '@sveltejs/kit/vite'; import { nodePolyfills } from 'vite-plugin-node-polyfills'; import { svelteTesting } from '@testing-library/svelte/vite'; const host = process.env.TAURI_DEV_HOST; // https://vitejs.dev/config/ export default defineConfig({ plugins: [tailwindcss(), sveltekit(), nodePolyfills(), svelteTesting()], // 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/**'] }, fs: { allow: [searchForWorkspaceRoot(process.cwd())] } }, test: { projects: [ { extends: './vite.config.js', test: { name: 'client', environment: 'jsdom', include: ['src/**/*.svelte.{test,spec}.{js,ts}'], exclude: ['src/lib/server/**'], setupFiles: ['./vitest-setup-client.ts'] } }, { extends: './vite.config.js', test: { name: 'server', environment: 'node', include: ['src/**/*.{test,spec}.{js,ts}'], exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] } } ] } });