// Разработка одной командой: API-сервер (с перезапуском при изменениях) + Vite, который проксирует на него /api. // API в режиме разработки слушает свой порт (по умолчанию 7010), чтобы не мешать рабочему серверу на 7000. import { spawn, type ChildProcess } from 'node:child_process'; import path from 'node:path'; const root = path.join(import.meta.dirname, '..'); const env = { ...process.env, API_PORT: process.env.API_PORT ?? '7010' }; const children: ChildProcess[] = [ spawn(process.execPath, ['--disable-warning=ExperimentalWarning', '--watch', 'server/index.ts'], { cwd: root, stdio: 'inherit', env: { ...env, PORT: env.API_PORT, HOST: '127.0.0.1' } }), spawn(process.execPath, [path.join(root, 'node_modules', 'vite', 'bin', 'vite.js')], { cwd: root, stdio: 'inherit', env }), ]; function stop(code = 0) { children.forEach(c => { if (c.exitCode === null) c.kill(); }); process.exit(code); } children.forEach(c => c.on('exit', code => stop(code ?? 0))); process.on('SIGINT', () => stop()); process.on('SIGTERM', () => stop());