Multi-platform Electron build configuration - esbuild bundling, electron-builder setup, and distribution
View on GitHubplugins/aai-stack-electron/skills/electron-build-config/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/the-answerai/alphaagent-team/blob/main/plugins/aai-stack-electron/skills/electron-build-config/SKILL.md -a claude-code --skill electron-build-configInstallation paths:
.claude/skills/electron-build-config/# Electron Build Configuration Skill
Configure the build pipeline for cross-platform Electron distribution with proper bundling, native module handling, and code signing.
## Build Pipeline Overview
```
Source Files → esbuild → electron-builder → Distribution
↓ ↓ ↓ ↓
TypeScript Bundle JS Package App DMG/EXE/AppImage
+ React + Externals + Rebuild + Code Signing
```
## esbuild Configuration
### Server Bundle (Main Process)
```bash
# Build server code for Electron main process
esbuild src/server/index.ts \
--bundle \
--platform=node \
--format=cjs \
--outfile=dist/server/index.cjs \
--external:better-sqlite3 \
--external:sharp \
--external:keytar \
--external:electron \
--define:process.env.NODE_ENV=\"production\"
```
### Electron Main Process Bundle
```bash
# Build Electron main/preload scripts
esbuild electron/main.ts electron/preload.ts \
--bundle \
--platform=node \
--format=cjs \
--outdir=electron-dist \
--out-extension:.js=.cjs \
--external:electron \
--external:keytar \
--external:better-sqlite3 \
--external:sharp
```
### package.json Scripts
```json
{
"scripts": {
"build": "vite build",
"build:server": "esbuild src/server/index.ts --bundle --platform=node --format=cjs --outfile=dist/server/index.cjs --external:better-sqlite3 --external:sharp --external:keytar",
"electron:build": "esbuild electron/*.ts --bundle --platform=node --format=cjs --outdir=electron-dist --out-extension:.js=.cjs --external:electron --external:keytar --external:better-sqlite3 --external:sharp",
"build:electron": "npm run build && npm run build:server && npm run electron:build",
"electron:dev": "NODE_ENV=development electron electron-dist/main.cjs",
"dev:electron": "concurrently \"npm run dev:client\" \"wait-on http://localhost:3000 && npm run electron:dev\"",
"dist": "npm run build:electron && electron-builder",
"dist:mac": "npm run build:electro