Files

35 lines
1021 B
TypeScript

import { defineConfig } from 'vite';
import { resolve } from 'path';
import { builtinModules } from 'module';
// Both 'fs' and 'node:fs' forms must be externalized
const nodeBuiltins = builtinModules.flatMap((m) => [m, `node:${m}`]);
const isProd = process.env.NODE_ENV === 'production' || !process.argv.includes('--mode');
export default defineConfig({
define: {
__UPDATE_SOURCE__: JSON.stringify(process.env.UPDATE_SOURCE || 'gitea'),
},
build: {
lib: {
entry: resolve(__dirname, 'src/main/index.ts'),
formats: ['cjs'],
fileName: () => 'index.js',
},
outDir: 'dist/main',
emptyDirBefore: true,
rollupOptions: {
external: ['electron', 'electron-store', 'original-fs', ...nodeBuiltins],
},
target: 'node20',
minify: isProd,
sourcemap: !isProd,
},
resolve: {
// Treat this as a Node build — don't swap node builtins for browser stubs
conditions: ['node'],
mainFields: ['module', 'main'],
},
});