41 lines
1002 B
JavaScript
41 lines
1002 B
JavaScript
import { build } from "esbuild";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
|
|
const repoRoot = path.resolve(process.cwd());
|
|
const pkg = JSON.parse(fs.readFileSync(path.join(repoRoot, "package.json"), "utf8"));
|
|
|
|
const externals = [
|
|
"electron",
|
|
...Object.keys(pkg.dependencies || {}),
|
|
...Object.keys(pkg.devDependencies || {})
|
|
];
|
|
|
|
/**
|
|
* Bundle/minify Electron main + preload.
|
|
*
|
|
* NOTE: This is source protection / IP hardening, not a security boundary.
|
|
*/
|
|
await build({
|
|
entryPoints: {
|
|
main: path.join(repoRoot, "electron", "main-src.js"),
|
|
preload: path.join(repoRoot, "electron", "preload-src.js")
|
|
},
|
|
outdir: path.join(repoRoot, "dist-electron"),
|
|
outExtension: { ".js": ".cjs" },
|
|
platform: "node",
|
|
format: "cjs",
|
|
bundle: true,
|
|
minify: true,
|
|
sourcemap: false,
|
|
legalComments: "none",
|
|
target: "node22",
|
|
define: {
|
|
"process.env.NODE_ENV": '"production"'
|
|
},
|
|
external: externals,
|
|
logLevel: "info"
|
|
});
|
|
|
|
console.log("Built dist-electron outputs.");
|