Files

30 lines
1.2 KiB
JavaScript

import fs from "node:fs";
import path from "node:path";
import { spawn, spawnSync } from "node:child_process";
import { fileURLToPath } from "node:url";
const projectDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
const runtimeDir = path.join(projectDir, ".cache", "runtime");
fs.mkdirSync(runtimeDir, { recursive: true });
const preflight = spawnSync(process.execPath, [path.join(projectDir, "scripts", "preflight.mjs"), "--ports=3000,5173"], {
cwd: projectDir,
stdio: "inherit",
shell: false,
});
if (preflight.status !== 0) process.exit(preflight.status ?? 1);
const npmCli = process.env.npm_execpath || path.join(path.dirname(process.execPath), "node_modules", "npm", "bin", "npm-cli.js");
const stdout = fs.openSync(path.join(runtimeDir, "dev.stdout.log"), "a");
const stderr = fs.openSync(path.join(runtimeDir, "dev.stderr.log"), "a");
const child = spawn(process.execPath, [npmCli, "run", "dev"], {
cwd: projectDir,
detached: true,
stdio: ["ignore", stdout, stderr],
shell: false,
windowsHide: true,
});
child.unref();
console.log(`AgendaPro dev iniciado en segundo plano (PID ${child.pid}). Logs: ${path.join(runtimeDir, "dev.stdout.log")}`);