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
+12 -8
View File
@@ -10,9 +10,12 @@
"private": true,
"main": "dist/main/main.js",
"scripts": {
"clean": "rimraf dist release",
"clean": "rimraf dist release lib",
"typecheck": "tsc --noEmit",
"build": "npm run clean && tsc -p tsconfig.json && node scripts/copy-assets.mjs",
"build:bundle": "node scripts/build-scoreko-bundle.mjs",
"build:main": "tsc -p tsconfig.json && node scripts/copy-assets.mjs",
"prepare:runtime": "node scripts/prepare-nodecg-runtime.mjs",
"build": "npm run clean && npm run build:bundle && npm run build:main && npm run prepare:runtime",
"start": "npm run build && electron .",
"dev": "concurrently -k \"npm:watch\" \"npm:dev:electron\"",
"watch": "tsc -p tsconfig.json --watch",
@@ -20,16 +23,16 @@
"pack": "npm run build && electron-builder --dir",
"rebuild:native": "node scripts/rebuild-nodecg-native.mjs",
"rebuild:better-sqlite3": "electron-rebuild --version 39.5.1 --module-dir lib/nodecg/workspaces/database-adapter-sqlite-legacy --only better-sqlite3 -f",
"test": "npm run build && node --test dist/tests/**/*.test.js",
"test": "rimraf dist && npm run build:main && node --test dist/tests/**/*.test.js",
"doctor": "node scripts/doctor.mjs",
"lint": "eslint . --ext .ts,.js,.mjs",
"lint:fix": "npm run lint -- --fix",
"format": "prettier --check .",
"format:write": "prettier --write .",
"dist:win": "npm run build && electron-builder --win",
"dist:linux": "npm run build && electron-builder --linux AppImage",
"dist:all": "npm run build && electron-builder --win --linux --mac",
"dist:mac": "npm run build && electron-builder --mac"
"dist:win": "npm run build && npm run rebuild:native && electron-builder --win",
"dist:linux": "npm run build && npm run rebuild:native && electron-builder --linux AppImage",
"dist:all": "npm run build && npm run rebuild:native && electron-builder --win --linux --mac",
"dist:mac": "npm run build && npm run rebuild:native && electron-builder --mac"
},
"build": {
"appId": "com.scoreko.desktop",
@@ -71,7 +74,8 @@
"nsis"
],
"icon": "static/icons/icon.ico",
"executableName": "scoreko"
"executableName": "scoreko",
"signAndEditExecutable": false
},
"nsis": {
"oneClick": false,