import { resolve } from 'node:path' import { defineConfig, externalizeDepsPlugin } from 'electron-vite' import react from '@vitejs/plugin-react' export default defineConfig({ main: { plugins: [externalizeDepsPlugin()], build: { outDir: 'out/main' }, }, preload: { plugins: [externalizeDepsPlugin()], build: { outDir: 'out/preload', // CommonJS preload (.cjs): loads synchronously before the page, so the // contextBridge is exposed by the time the renderer mounts. ESM preload // (.mjs) can expose late and leave window.helder briefly undefined. rollupOptions: { output: { format: 'cjs', entryFileNames: 'index.cjs' } }, }, }, renderer: { root: 'src/renderer', build: { outDir: 'out/renderer', rollupOptions: { input: resolve(__dirname, 'src/renderer/index.html'), }, }, plugins: [react()], }, })