import { defineConfig } from 'vite'; import { nodePolyfills } from 'vite-plugin-node-polyfills'; import path from 'node:path'; // The client lives in src/client (index.html is the Vite root); static PWA // assets stay in public/static and are served/copied verbatim from the root. export default defineConfig({ root: path.resolve(import.meta.dirname, 'src/client'), publicDir: path.resolve(import.meta.dirname, 'public/static'), plugins: [ nodePolyfills({ include: ['buffer', 'crypto', 'events', 'stream', 'util'], globals: { Buffer: true, global: true, process: true, }, }), ], build: { outDir: path.resolve(import.meta.dirname, 'dist'), emptyOutDir: true, target: 'esnext', minify: 'esbuild', rollupOptions: { input: path.resolve(import.meta.dirname, 'src/client/index.html'), }, }, });