35 lines
1021 B
TypeScript
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'],
|
|
},
|
|
});
|