import { cp, mkdir } from 'node:fs/promises' import { fileURLToPath } from 'node:url' import { type Plugin, defineConfig } from 'vite' const copyNuxtOutput: Plugin = { name: 'copy-nuxt-output', async closeBundle() { const outputDir = fileURLToPath(new URL('../.output/public', import.meta.url)) const targetDir = fileURLToPath(new URL('../.vite/renderer', import.meta.url)) await mkdir(targetDir, { recursive: true }) await cp(outputDir, targetDir, { recursive: true, force: true }) }, } export default defineConfig({ publicDir: false, plugins: [copyNuxtOutput], build: { emptyOutDir: false, lib: { entry: 'electron/main.ts', formats: ['cjs'], }, rollupOptions: { output: { entryFileNames: '[name].cjs', }, external: [ 'electron', ], }, }, })