Add an Electron desktop shell for the SPA
desktop/ serves the normal frontend build over a privileged app://j621 scheme, so localStorage, OPFS, Web Workers, WebCodecs and history routing behave exactly like Chrome. Development points at the Vite dev server; `npm run smoke` runs headless Electron and checks the bundled app. External links open in the system browser, and download navigations (?download=1 or media URLs) are rerouted through webContents.downloadURL, since preventing them cancels the download. The setup screen names the shell's origin when the connection test fails, and the deploy docs list app://j621 for CORS_ALLOWED_ORIGINS.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "j621-desktop",
|
||||
"productName": "J621",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Desktop shell for the J621 self-hosted media archive",
|
||||
"author": "JakeBreath",
|
||||
"license": "SEE LICENSE IN ../LICENSE",
|
||||
"main": "dist/main.js",
|
||||
"scripts": {
|
||||
"build:main": "tsc -p tsconfig.json",
|
||||
"build:renderer": "npm --prefix ../frontend run build",
|
||||
"build": "npm run build:main && npm run build:renderer",
|
||||
"dev": "npm run build:main && J621_DEV_SERVER=http://localhost:5173 electron .",
|
||||
"start": "npm run build && electron .",
|
||||
"smoke": "npm run build && xvfb-run -a electron . --j621-smoke",
|
||||
"dist:linux": "npm run build && electron-builder --linux",
|
||||
"dist:win": "npm run build && electron-builder --win",
|
||||
"dist:all": "npm run build && electron-builder --linux --win"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.13.6",
|
||||
"electron": "^44.4.3",
|
||||
"electron-builder": "^26.15.3",
|
||||
"typescript": "^6.0.3"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user