From 9fa436b0b872bc77693bcd8e5c8417fbb9fe1994 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Thu, 27 Nov 2025 20:11:02 +0000 Subject: [PATCH] Ensure rollup linux binary in tauri prebuild --- packages/tauri-app/scripts/prebuild.js | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/tauri-app/scripts/prebuild.js b/packages/tauri-app/scripts/prebuild.js index 260bdfe0..331be087 100644 --- a/packages/tauri-app/scripts/prebuild.js +++ b/packages/tauri-app/scripts/prebuild.js @@ -114,6 +114,40 @@ function ensureUiDevDependencies() { }) } +function ensureRollupPlatformBinary() { + if (process.platform !== "linux" || process.arch !== "x64") { + return + } + + const rollupLinuxPath = path.join( + workspaceRoot, + "node_modules", + "@rollup", + "rollup-linux-x64-gnu", + ) + + if (fs.existsSync(rollupLinuxPath)) { + return + } + + let rollupVersion = "" + try { + rollupVersion = require(path.join(workspaceRoot, "node_modules", "rollup", "package.json")).version + } catch (error) { + // leave version empty; fallback install will use latest compatible + } + + const packageSpec = rollupVersion + ? `@rollup/rollup-linux-x64-gnu@${rollupVersion}` + : "@rollup/rollup-linux-x64-gnu" + + console.log("[prebuild] installing rollup linux binary (optional dep workaround)...") + execSync(`npm install ${packageSpec} --no-save --ignore-scripts --fund=false --audit=false`, { + cwd: workspaceRoot, + stdio: "inherit", + }) +} + function copyServerArtifacts() { fs.rmSync(serverDest, { recursive: true, force: true }) fs.mkdirSync(serverDest, { recursive: true }) @@ -151,6 +185,7 @@ function copyUiLoadingAssets() { ensureServerDevDependencies() ensureUiDevDependencies() +ensureRollupPlatformBinary() ensureServerBuild() ensureUiBuild() ensureServerDependencies()