Files
2026-09-23 21:56:40 +03:00

23 lines
1.2 KiB
TypeScript

// Разработка одной командой: 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());