feat: first round of mcp standalone server
This commit is contained in:
70
vite.config.cli.ts
Normal file
70
vite.config.cli.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* 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
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user