From 69fbce95940a5afe2f78759470c24021f73544fe Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Wed, 13 May 2026 16:27:31 +0800 Subject: [PATCH] fix: resolve linux electron backend fork ENOTDIR error --- electron/main.cjs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/electron/main.cjs b/electron/main.cjs index d536bdfd..b210a7b7 100644 --- a/electron/main.cjs +++ b/electron/main.cjs @@ -566,7 +566,7 @@ function getBackendPaths() { return { entryPath: path.join(backendDir, "starter.js"), backendCwd: backendDir }; } // fork() does not go through Electron's asar redirector — use the unpacked path - const unpackedRoot = appRoot.replace("app.asar", "app.asar.unpacked"); + const unpackedRoot = appRoot.replace(/app\.asar(?!\.unpacked)/, "app.asar.unpacked"); const backendDir = path.join(unpackedRoot, "dist", "backend", "backend"); return { entryPath: path.join(backendDir, "starter.js"), backendCwd: backendDir }; } @@ -606,7 +606,9 @@ function startBackendServer() { logToFile(" backendCwd exists:", fs.existsSync(backendCwd)); backendProcess = fork(entryPath, [], { - cwd: backendCwd, + cwd: fs.existsSync(backendCwd) && fs.statSync(backendCwd).isDirectory() + ? backendCwd + : dataDir, env: { ...process.env, DATA_DIR: dataDir,