Files
plimi/scripts/build.mjs
2026-06-10 14:09:41 +02:00

38 lines
985 B
JavaScript

import { spawn } from "node:child_process";
import path from "node:path";
import { fileURLToPath } from "node:url";
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
function run(script, args) {
const child = spawn(process.execPath, [path.join(root, script), ...args], {
cwd: root,
stdio: "inherit",
});
return new Promise((resolve, reject) => {
child.once("error", reject);
child.once("exit", (code, signal) => {
if (signal) {
reject(new Error(`${script} terminated by ${signal}`));
return;
}
resolve(code ?? 1);
});
});
}
const [typecheckStatus, viteStatus] = await Promise.all([
run("node_modules/typescript/bin/tsc", ["-b"]),
run("node_modules/vite/bin/vite.js", ["build"]),
]);
if (typecheckStatus !== 0 || viteStatus !== 0) {
process.exitCode = 1;
} else {
const seoStatus = await run("scripts/generate-seo.mjs", []);
if (seoStatus !== 0) {
process.exitCode = 1;
}
}