feat: integrate Electron for desktop app
- Add electron-vite + Electron Forge tooling - Create Electron main process with embedded Express server - Create preload script with native dialog IPC bridge - Refactor server.ts to export createExpressApp() (dual web/electron) - Adapt renderQueue.ts for packaged binaries + pre-built bundle - Add ensureBrowser() for Chrome Headless Shell pre-download - Add scripts/bundle-remotion.js for packaging - Data persists in ~/Library/Application Support/Bradly/ - Web mode preserved via npm run dev:web
This commit is contained in:
+19
-7
@@ -1,15 +1,23 @@
|
||||
{
|
||||
"name": "react-example",
|
||||
"name": "bradly",
|
||||
"productName": "Bradly",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"version": "0.1.0",
|
||||
"type": "module",
|
||||
"main": "out/main/index.js",
|
||||
"scripts": {
|
||||
"dev": "tsx server.ts",
|
||||
"build": "vite build && esbuild server.ts --bundle --platform=node --format=cjs --packages=external --sourcemap --outfile=dist/server.cjs",
|
||||
"start": "node dist/server.cjs",
|
||||
"dev": "electron-vite dev",
|
||||
"dev:web": "tsx server.ts",
|
||||
"build": "electron-vite build",
|
||||
"build:web": "vite build && esbuild server.ts --bundle --platform=node --format=cjs --packages=external --sourcemap --outfile=dist/server.cjs",
|
||||
"start": "electron-vite preview",
|
||||
"start:web": "node dist/server.cjs",
|
||||
"preview": "vite preview",
|
||||
"clean": "rm -rf dist server.js",
|
||||
"lint": "tsc --noEmit"
|
||||
"clean": "rm -rf dist out server.js",
|
||||
"lint": "tsc --noEmit",
|
||||
"remotion:bundle": "node scripts/bundle-remotion.js",
|
||||
"package": "npm run remotion:bundle && npm run build && electron-forge package",
|
||||
"make": "npm run remotion:bundle && npm run build && electron-forge make"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
@@ -35,12 +43,16 @@
|
||||
"vite": "^6.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@electron-forge/cli": "^7.11.2",
|
||||
"@electron-forge/maker-dmg": "^7.11.2",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/file-saver": "^2.0.7",
|
||||
"@types/multer": "^2.1.0",
|
||||
"@types/node": "^22.14.0",
|
||||
"@types/papaparse": "^5.5.2",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"electron": "^41.7.1",
|
||||
"electron-vite": "^5.0.0",
|
||||
"esbuild": "^0.25.0",
|
||||
"tailwindcss": "^4.1.14",
|
||||
"tsx": "^4.21.0",
|
||||
|
||||
Reference in New Issue
Block a user