mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-06 05:32:06 +00:00
refactor: run NodeCG only with Electron node runtime (#17)
This commit is contained in:
+4
-8
@@ -10,9 +10,8 @@ const DEFAULT_DASHBOARD_ROUTE = process.env.SCOREKO_DASHBOARD_ROUTE ?? "dashboar
|
|||||||
const DEFAULT_LOADING_ROUTE = process.env.SCOREKO_LOADING_ROUTE ?? "dashboard/loading/main.html?standalone=true";
|
const DEFAULT_LOADING_ROUTE = process.env.SCOREKO_LOADING_ROUTE ?? "dashboard/loading/main.html?standalone=true";
|
||||||
const LOAD_DELAY_MS = parseEnvInt("ELECTRON_LOAD_DELAY_MS", 10000);
|
const LOAD_DELAY_MS = parseEnvInt("ELECTRON_LOAD_DELAY_MS", 10000);
|
||||||
const STARTUP_TIMEOUT_MS = parseEnvInt("NODECG_STARTUP_TIMEOUT_MS", 30000);
|
const STARTUP_TIMEOUT_MS = parseEnvInt("NODECG_STARTUP_TIMEOUT_MS", 30000);
|
||||||
const USE_SYSTEM_NODE = (process.env.NODECG_USE_SYSTEM_NODE ?? "false").toLowerCase() === "true";
|
|
||||||
const NODE_BINARY = process.env.NODECG_NODE_BINARY ?? "node";
|
|
||||||
const NODECG_KILL_TIMEOUT_MS = parseEnvInt("NODECG_KILL_TIMEOUT_MS", 2500);
|
const NODECG_KILL_TIMEOUT_MS = parseEnvInt("NODECG_KILL_TIMEOUT_MS", 2500);
|
||||||
|
const NODECG_RUNTIME_NAME = "electron internal node";
|
||||||
|
|
||||||
const isDev = !app.isPackaged;
|
const isDev = !app.isPackaged;
|
||||||
const rootPath = isDev ? path.resolve(__dirname, "../..") : process.resourcesPath;
|
const rootPath = isDev ? path.resolve(__dirname, "../..") : process.resourcesPath;
|
||||||
@@ -146,16 +145,13 @@ function startNodeCG(): ChildProcess {
|
|||||||
validateNodeCGInstall();
|
validateNodeCGInstall();
|
||||||
|
|
||||||
const indexPath = path.join(nodecgPath, "index.js");
|
const indexPath = path.join(nodecgPath, "index.js");
|
||||||
const runtimeBinary = USE_SYSTEM_NODE ? NODE_BINARY : process.execPath;
|
const child = spawn(process.execPath, [indexPath], {
|
||||||
const runtimeName = USE_SYSTEM_NODE ? `system node (${NODE_BINARY})` : "electron internal node";
|
|
||||||
|
|
||||||
const child = spawn(runtimeBinary, [indexPath], {
|
|
||||||
cwd: nodecgPath,
|
cwd: nodecgPath,
|
||||||
env: {
|
env: {
|
||||||
...process.env,
|
...process.env,
|
||||||
NODE_ENV: isDev ? "development" : "production",
|
NODE_ENV: isDev ? "development" : "production",
|
||||||
NODECG_PORT: DEFAULT_NODECG_PORT,
|
NODECG_PORT: DEFAULT_NODECG_PORT,
|
||||||
...(USE_SYSTEM_NODE ? {} : { ELECTRON_RUN_AS_NODE: "1" }),
|
ELECTRON_RUN_AS_NODE: "1",
|
||||||
},
|
},
|
||||||
stdio: ["ignore", "pipe", "pipe"],
|
stdio: ["ignore", "pipe", "pipe"],
|
||||||
detached: process.platform !== "win32",
|
detached: process.platform !== "win32",
|
||||||
@@ -172,7 +168,7 @@ function startNodeCG(): ChildProcess {
|
|||||||
process.stderr.write(text);
|
process.stderr.write(text);
|
||||||
});
|
});
|
||||||
|
|
||||||
log(`NodeCG started with pid=${child.pid} using ${runtimeName}`);
|
log(`NodeCG started with pid=${child.pid} using ${NODECG_RUNTIME_NAME}`);
|
||||||
|
|
||||||
child.on("exit", (code, signal) => {
|
child.on("exit", (code, signal) => {
|
||||||
log(`NodeCG exited code=${code} signal=${signal ?? "none"}`);
|
log(`NodeCG exited code=${code} signal=${signal ?? "none"}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user