30 lines
1.2 KiB
JavaScript
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")}`);
|