import cp from 'vite-plugin-cp' import path from 'node:path' import './scripts/gen-manifest' import type { ElectronViteConfig } from 'electron-vite' const external = [ 'silk-wasm', 'ws', '@minatojs/sql.js', ] function genCpModule(module: string) { return { src: `./node_modules/${module}`, dest: `dist/node_modules/${module}`, flatten: false } } const config: ElectronViteConfig = { main: { build: { outDir: 'dist/main', emptyOutDir: true, lib: { formats: ['cjs'], entry: { main: 'src/main/main.ts' }, }, rollupOptions: { external, input: 'src/main/main.ts', }, minify: true, }, resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, plugins: [ cp({ targets: [ ...external.map(genCpModule), { src: './manifest.json', dest: 'dist' }, { src: './icon.webp', dest: 'dist' }, ], }), ], }, preload: { // vite config options build: { outDir: 'dist/preload', emptyOutDir: true, lib: { formats: ['cjs'], entry: { preload: 'src/preload.ts' }, }, rollupOptions: { // external: externalAll, input: 'src/preload.ts', }, }, resolve: {}, }, renderer: { // vite config options build: { outDir: 'dist/renderer', emptyOutDir: true, lib: { formats: ['es'], entry: { renderer: 'src/renderer/index.ts' }, }, rollupOptions: { // external: externalAll, input: 'src/renderer/index.ts', }, }, resolve: {}, }, } export default config