import { defineConfig, createLogger } from "vite"; import { sveltekit } from "@sveltejs/kit/vite"; import tailwindcss from "@tailwindcss/vite"; // @ts-expect-error process is a nodejs global const host = process.env.TAURI_DEV_HOST; // SvelteKit passes codeSplitting to Rollup 4 which no longer recognises it — harmless const logger = createLogger(); const baseWarn = logger.warn.bind(logger); logger.warn = (/** @type {string} */ msg, /** @type {any} */ options) => { // SvelteKit passes codeSplitting to Rollup 4 which no longer recognises it if (msg.includes("codeSplitting")) return; // Large chunks are fine for a desktop app — no network penalty if (msg.includes("chunks are larger than")) return; // Dynamic/static import mix in CodeMirror — harmless, module stays in main chunk if (msg.includes("dynamically imported by") && msg.includes("codemirror")) return; baseWarn(msg, options); }; // https://vite.dev/config/ export default defineConfig(async () => ({ plugins: [tailwindcss(), sveltekit()], customLogger: logger, // 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/**"], }, }, }));