Files
memind_adm/scripts/dev.mjs
T
John 9ecfa73831 Add embedded Express admin API and unified dev workflow.
Move admin backend into this repo (Express + MySQL on :8085) so npm run dev starts both API and Vite, with updated env defaults and Caddy config for gadm.tkmind.cn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 16:29:06 -07:00

43 lines
1.0 KiB
JavaScript

#!/usr/bin/env node
import { spawn } from 'node:child_process';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const root = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
function spawnChild(command, args, label) {
const child = spawn(command, args, {
cwd: root,
stdio: 'inherit',
env: process.env,
});
child.on('exit', (code, signal) => {
if (signal) return;
if (code && code !== 0) shutdown(code ?? 1);
});
return child;
}
let server;
let web;
let stopping = false;
function shutdown(code = 0) {
if (stopping) return;
stopping = true;
server?.kill('SIGTERM');
web?.kill('SIGTERM');
setTimeout(() => process.exit(code), 200).unref();
}
process.on('SIGINT', () => shutdown(0));
process.on('SIGTERM', () => shutdown(0));
console.log('==> 启动 Admin API (memind_adm/server)');
server = spawnChild('node', ['server/index.mjs'], 'server');
setTimeout(() => {
console.log('==> 启动管理端 Vite @ http://localhost:5174');
web = spawnChild('npm', ['run', 'dev:web'], 'web');
}, 800);