scripts/prepare-server.mjs : rebuild forcé shared+server (évite la non-idempotence du prepack), npm pack du daemon (tarball autonome), extraction, strip des devDependencies (dont @arboretum/shared inliné, non publié), npm install --omit=dev des deps runtime avec le bon prebuild node-pty (cross via npm_config_platform/arch). scripts/fetch-node.mjs : Node standalone épinglé (22.21.1) vérifié SHA256 -> build/node. electron-builder.yml : dist/ en ASAR ; build/server et build/node en extraResources (hors ASAR pour les .node) ; cibles Linux (AppImage+deb), Windows (nsis+portable), macOS (dmg/zip non signé) ; publish generic -> release Gitea. Scripts dist:linux/win/mac. Vérifié : fetch-node (Node bundlé + node:sqlite), prepare-server (structure complète), et la chaîne runtime complète (Node bundlé exécute le daemon empaqueté : handshake + session bash via node-pty OK). Le wrapping electron-builder est une étape machine.
26 lines
1.1 KiB
JSON
26 lines
1.1 KiB
JSON
{
|
|
"name": "@arboretum/desktop",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"description": "Arboretum desktop app: Electron shell that runs the daemon and shows its web UI",
|
|
"main": "dist/main.js",
|
|
"type": "commonjs",
|
|
"scripts": {
|
|
"typecheck": "tsc -p . --noEmit",
|
|
"build": "npm run typecheck && node esbuild.mjs",
|
|
"dev": "node esbuild.mjs && electron .",
|
|
"prepare:server": "node scripts/prepare-server.mjs",
|
|
"prepare:node": "node scripts/fetch-node.mjs",
|
|
"dist:linux": "npm run build && npm run prepare:server -- --platform=linux && npm run prepare:node -- --platform=linux && electron-builder --linux",
|
|
"dist:win": "npm run build && npm run prepare:server -- --platform=win32 && npm run prepare:node -- --platform=win32 && electron-builder --win",
|
|
"dist:mac": "npm run build && npm run prepare:server -- --platform=darwin && npm run prepare:node -- --platform=darwin && electron-builder --mac"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.10.0",
|
|
"electron": "^33.0.0",
|
|
"electron-builder": "^25.1.0",
|
|
"esbuild": "^0.21.0",
|
|
"typescript": "^5.7.0"
|
|
}
|
|
}
|