Redesign about page and stabilize site data
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
const { execFileSync, spawn } = require("node:child_process");
|
||||
const path = require("node:path");
|
||||
|
||||
function supportsNext(nodePath) {
|
||||
try {
|
||||
const version = execFileSync(nodePath, ["--version"], {
|
||||
encoding: "utf8",
|
||||
stdio: ["ignore", "pipe", "ignore"],
|
||||
}).trim();
|
||||
const [major, minor] = version.replace(/^v/, "").split(".").map(Number);
|
||||
return major >= 20 || (major === 18 && minor >= 18) || (major === 19 && minor >= 8);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function installedNodes() {
|
||||
const command = process.platform === "win32" ? "where.exe" : "which";
|
||||
const args = process.platform === "win32" ? ["node"] : ["-a", "node"];
|
||||
|
||||
try {
|
||||
return execFileSync(command, args, { encoding: "utf8" })
|
||||
.split(/\r?\n/)
|
||||
.map((item) => item.trim())
|
||||
.filter(Boolean);
|
||||
} catch {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
const nodePath = [process.execPath, ...installedNodes()].find(supportsNext);
|
||||
|
||||
if (!nodePath) {
|
||||
console.error("Next.js به Node.js 18.18 یا جدیدتر نیاز دارد. لطفاً Node.js LTS را نصب کنید.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const nextCli = require.resolve("next/dist/bin/next");
|
||||
const child = spawn(nodePath, [nextCli, "dev", ...process.argv.slice(2)], {
|
||||
cwd: path.resolve(__dirname, ".."),
|
||||
stdio: "inherit",
|
||||
env: process.env,
|
||||
});
|
||||
|
||||
child.on("exit", (code, signal) => {
|
||||
if (signal) process.kill(process.pid, signal);
|
||||
process.exit(code ?? 1);
|
||||
});
|
||||
Reference in New Issue
Block a user