feat: enhance NodeCG runtime management and packaging

- Update .gitignore and .prettierignore to exclude additional cache and configuration files.
- Revise README.md for clarity on build processes and runtime behavior.
- Improve architecture documentation to reflect changes in startup flow and module responsibilities.
- Modify troubleshooting guide to address common runtime issues and installation steps.
- Enhance ESLint configuration to ignore more directories.
- Update package.json scripts for better build and distribution processes.
- Introduce build-scoreko-bundle.mjs for building the Scoreko bundle.
- Implement prepare-nodecg-runtime.mjs for managing NodeCG runtime installation and updates.
- Add runtime-provisioner.ts to handle user-specific NodeCG runtime provisioning.
- Create tests for runtime provisioning to ensure correct behavior.
- Refactor process-manager.ts and main.ts to integrate new runtime management logic.
This commit is contained in:
2026-05-09 17:45:36 +02:00
parent b10b8adb98
commit 41e4e91c4b
16 changed files with 737 additions and 100 deletions
+5 -5
View File
@@ -121,7 +121,7 @@ export function createNodecgProcessManager({
exitDetails,
stderrDetails,
`NodeCG path: ${nodecgRootPath}`,
"Check that lib/nodecg dependencies are installed and the bundle exists.",
"Check that the packaged runtime was installed correctly and the bundle exists.",
].join("\n"),
);
}
@@ -234,7 +234,7 @@ function validateNodecgInstall(
}
if (!pathExists(indexPath)) {
throw new Error(`${indexPath} was not found. Copy a full NodeCG installation into lib/nodecg.`);
throw new Error(`${indexPath} was not found. Build the packaged NodeCG runtime before starting Electron.`);
}
if (!pathExists(nodecgBootstrapPath)) {
@@ -242,8 +242,8 @@ function validateNodecgInstall(
[
"NodeCG is present but internal dependencies are missing.",
`Not found: ${nodecgBootstrapPath}`,
"Solution: enter lib/nodecg and install dependencies:",
" npm install",
"Solution: rebuild the packaged runtime:",
" npm run prepare:runtime",
].join("\n"),
);
}
@@ -253,7 +253,7 @@ function validateNodecgInstall(
[
`Bundle '${bundleName}' was not found.`,
`Expected path: ${bundlePath}`,
"Copy/clone your bundle inside lib/nodecg/bundles before running Electron.",
"Build and package the Scoreko bundle before running Electron.",
].join("\n"),
);
}