Files
bDS/vite.config.cli.ts

71 lines
1.8 KiB
TypeScript

/**
* Vite build config for the standalone CLI bundle.
*
* Produces: dist/cli/bds-mcp.cjs
* Target: Node.js (same version as Electron's Node)
* Format: CommonJS (required by ELECTRON_RUN_AS_NODE)
* Strategy: Bundle all first-party code; externalize native modules and
* packages whose platform-specific binaries cannot be inlined.
*/
import { defineConfig } from 'vite';
import { resolve } from 'path';
// Packages that contain native binaries or platform-specific build outputs
// that must be resolved at runtime from the app bundle.
const EXTERNALS = [
'electron',
'@libsql/client',
'@libsql/linux-x64-gnu',
'@libsql/linux-arm64-gnu',
'@libsql/darwin-x64',
'@libsql/darwin-arm64',
'@libsql/win32-x64-msvc',
'@libsql/win32-arm64-msvc',
'chokidar',
'fsevents',
// Node built-ins (already externalized by Vite's 'node' target, but explicit
// listing ensures they survive any future config change)
'path',
'fs',
'os',
'crypto',
'child_process',
'net',
'tls',
'http',
'https',
'stream',
'util',
'events',
'assert',
'url',
'zlib',
'buffer',
'dgram',
'dns',
];
export default defineConfig({
build: {
target: 'node18',
outDir: 'dist/cli',
emptyOutDir: true,
ssr: resolve(__dirname, 'src/cli/bds-mcp.ts'),
rollupOptions: {
input: resolve(__dirname, 'src/cli/bds-mcp.ts'),
external: EXTERNALS,
output: {
format: 'cjs',
// Ensure the output file is named bds-mcp.cjs
entryFileNames: 'bds-mcp.cjs',
// Preserve __dirname for path resolution at runtime
interop: 'auto',
},
},
// Source maps help with debugging; keep them external to avoid inflating file size.
sourcemap: process.env.NODE_ENV === 'development' ? 'inline' : false,
minify: false, // readable stack traces in production
},
});