fix: document electron module mapping and add native rebuild helper

This commit is contained in:
Pandipipas
2026-02-10 14:35:10 +01:00
parent ccbb744a41
commit a3ecbbe7b0
9 changed files with 6330 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
import { cpSync, existsSync, mkdirSync } from "node:fs";
import path from "node:path";
const root = process.cwd();
const distStatic = path.join(root, "dist", "static");
const sourceStatic = path.join(root, "static");
mkdirSync(distStatic, { recursive: true });
if (existsSync(sourceStatic)) {
cpSync(sourceStatic, distStatic, { recursive: true });
console.log("Copied static assets to dist/static");
} else {
console.warn("No static folder found, skipping copy-assets step");
}
+46
View File
@@ -0,0 +1,46 @@
import { existsSync } from "node:fs";
import path from "node:path";
import { spawn } from "node:child_process";
const root = process.cwd();
const candidates = [
path.join(root, "lib", "nodecg"),
path.join(root, "lib", "nodecg", "workspaces", "database-adapter-sqlite-legacy"),
];
const moduleDirs = candidates.filter((dir) => existsSync(path.join(dir, "package.json")));
if (moduleDirs.length === 0) {
console.error("No NodeCG package folders found. Expected lib/nodecg and/or workspaces.");
process.exit(1);
}
function run(command, args, cwd) {
return new Promise((resolve, reject) => {
const child = spawn(command, args, {
cwd,
stdio: "inherit",
shell: process.platform === "win32",
env: {
...process.env,
npm_config_runtime: "electron",
npm_config_build_from_source: "false",
},
});
child.on("exit", (code) => {
if (code === 0) {
resolve();
} else {
reject(new Error(`${command} ${args.join(" ")} failed with code ${code}`));
}
});
});
}
for (const dir of moduleDirs) {
console.log(`\n[rebuild-native] Rebuilding native modules in: ${dir}`);
await run("npx", ["electron-rebuild", "--force", "--only", "better-sqlite3"], dir);
}
console.log("\n[rebuild-native] Done.");