41 lines
897 B
JavaScript

import { spawn } from "node:child_process";
import path from "node:path";
const viteBin = path.join(
"node_modules",
".bin",
process.platform === "win32" ? "vite.cmd" : "vite"
);
const run = (name, command, args, env = {}) => {
const child = spawn(command, args, {
stdio: "inherit",
shell: process.platform === "win32",
env: { ...process.env, ...env },
});
child.on("exit", (code, signal) => {
if (signal) {
console.log(`${name} stopped with ${signal}`);
return;
}
if (code !== 0) {
console.log(`${name} exited with code ${code}`);
process.exitCode = code;
}
});
return child;
};
const api = run("api", "node", ["server/index.js"], { API_PORT: "4174" });
const vite = run("vite", viteBin, []);
const stop = () => {
api.kill("SIGTERM");
vite.kill("SIGTERM");
};
process.on("SIGINT", stop);
process.on("SIGTERM", stop);