87ddf1499d
Cross-platform Krunker.io game client forked from Krunker Police Client with all KPD/moderator features stripped: no KPD auth, OBS recording, evidence uploads, yt-dlp, bytenode, or code obfuscation. Retained: unlimited FPS (custom Electron 42), ad blocking, resource swapper, matchmaker, userscripts, chat translator, Discord RPC, alt account manager, configurable keybinds, and advanced Chromium flags. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
909 B
TypeScript
32 lines
909 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({
|
|
build: {
|
|
lib: {
|
|
entry: resolve(__dirname, 'src/main/index.ts'),
|
|
formats: ['cjs'],
|
|
fileName: () => 'index.js',
|
|
},
|
|
outDir: 'dist/main',
|
|
emptyDirBefore: true,
|
|
rollupOptions: {
|
|
external: ['electron', 'electron-store', ...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'],
|
|
},
|
|
});
|