71 lines
1.8 KiB
TypeScript
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
|
|
},
|
|
});
|