feat(desktop): packaging (C2) : prepare-server, fetch-node, electron-builder
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.
This commit is contained in:
@@ -8,11 +8,17 @@
|
||||
"scripts": {
|
||||
"typecheck": "tsc -p . --noEmit",
|
||||
"build": "npm run typecheck && node esbuild.mjs",
|
||||
"dev": "node esbuild.mjs && electron ."
|
||||
"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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user