diff --git a/rollup.config.ts b/rollup.config.ts index e7bdfd9..a05f9cc 100644 --- a/rollup.config.ts +++ b/rollup.config.ts @@ -138,14 +138,14 @@ function evalPredicate(predicate: string): boolean { const output: OutputOptions[] = [ { - file: "./dist/partypooper.cjs", + file: `./dist/partypooper${{static: "", shared: "-shared", none: "-no-ffmpeg"}[process.env.FFMPEG || "static"]}.cjs`, format: "commonjs" } ]; if (process.env.BUILD === "release") { output.push({ - file: "./dist/partypooper.min.cjs", + file: `./dist/partypooper${{static: "", shared: "-shared", none: "-no-ffmpeg"}[process.env.FFMPEG || "static"]}.min.cjs`, format: "commonjs", plugins: [terser()] }); diff --git a/tools/build.ts b/tools/build.ts index 3e7e15f..2ec38d3 100644 --- a/tools/build.ts +++ b/tools/build.ts @@ -91,11 +91,13 @@ function generateBlob(target: BuildTarget, ffmpegMode: FfmpegMode) { throw new Error(`Incompatible node version: ${process.version}. Minimum required: ${minimumNodeVersion}`); } - const configPath = `./dist/sea-config-${target.asNodeString()}.json`; + const ffmpegSuffix = {static: "", shared: "-shared", none: "-no-ffmpeg"}[ffmpegMode || "static"]; + + const configPath = `./dist/sea-config-${target.asNodeString()}${ffmpegSuffix}.json`; const config = { - main: "./dist/partypooper.min.cjs", - output: `./dist/partypooper-${target.asNodeString()}.blob`, + main: `./dist/partypooper${ffmpegSuffix}.min.cjs`, + output: `./dist/partypooper-${target.asNodeString()}${ffmpegSuffix}.blob`, disableExperimentalSEAWarning: true, assets: {} as Record<string, string> }; @@ -300,9 +302,11 @@ program generateBlob(target, ffmpegMode); } + const ffmpegSuffix = {static: "", shared: "-shared", none: "-no-ffmpeg"}[ffmpegMode || "static"]; + for (const target of targets) { const executablePath = await getNode(target, targetNodeVersion); - const appName = `PartyPooper-${{static: "", shared: "ffmpeg-shared-", none: "ffmpeg-none-"}[ffmpegMode]}${target.asNodeString()}`; + const appName = `PartyPooper-${target.asNodeString()}${ffmpegSuffix}`; const distExecutable = join("./dist", `${appName}${target.isWindows ? ".exe" : ""}`); copyFileSync(executablePath, distExecutable); @@ -311,7 +315,7 @@ program await inject( distExecutable, "NODE_SEA_BLOB", - readFileSync(`./dist/partypooper-${target.asNodeString()}.blob`), + readFileSync(`./dist/partypooper-${target.asNodeString()}${ffmpegSuffix}.blob`), {sentinelFuse: "NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2"} );