Bei Electron gibt es nicht das eine Setup — vier Wege sind populär: plain npm (maximal manuell), electron-vite (modernes Dev-Setup), electron-builder (Packaging-Spezialist) und Electron Forge (offizielles All-in-One). Hier ein Vergleich, wann welches Tool sinnvoll ist.

Die vier Optionen im Überblick

ToolFokusMaintainerEinsatz
plain npmnichts — du baust allesLernen, sehr kleine Apps
electron-viteDev-Setup mit ViteCommunityModerne Apps mit Framework
electron-builderPackaging und DistributionCommunityProduction-Builds, Auto-Update
Electron ForgeKomplett-Toolkit (Dev + Build + Publish)Electron-TeamStandardprojekte, weniger Konfig

Wichtig: electron-vite und electron-builder sind oft kombiniert — Vite für Dev, Builder für Distribution. Forge ist die Alternative, die beides selbst macht.

plain npm

Was du selbst tun musst:

  • Build-Setup für TypeScript, JSX, CSS-Frameworks
  • Dev-Server / HMR (oder darauf verzichten)
  • Packaging zu .app/.exe/.AppImage
  • Code-Signing-Pipeline
  • Auto-Update-Logik

Wofür’s reicht:

  • Hello-World, kleine Vanilla-JS-Tools
  • Lehr- und Demo-Projekte
  • Maximale Kontrolle, du kennst genau jeden Schritt

Nicht produktiv für reale Apps gedacht — irgendein Build-Tool willst du fast immer.

electron-vite

Dev-Setup mit Vite für den Renderer und ESBuild für Main + Preload.

Bash Scaffold
npm create @quick-start/electron@latest my-app

Was du bekommst:

  • src/main, src/preload, src/renderer — klare Struktur
  • TypeScript out-of-the-box
  • React/Vue/Svelte-Templates
  • HMR im Renderer (sofortiger Reload bei Code-Änderungen)
  • Sehr schneller Build dank ESBuild

Was fehlt:

  • Kein Packaging — Vite macht den Code-Bundle, aber nicht das .dmg/.exe. Dafür kombiniert man electron-vite typisch mit electron-builder.

Faustregel: für moderne Apps mit Framework + TypeScript ist electron-vite der Default geworden.

electron-builder

Reines Packaging-Tool. Nimmt deinen Code (egal wie gebundlet) und macht daraus distribuierbare Pakete.

Bash
npm install --save-dev electron-builder
JSON package.json
{
  "scripts": {
    "build": "electron-builder"
  },
  "build": {
    "appId": "com.example.myapp",
    "productName": "MyApp",
    "mac": { "target": "dmg", "category": "public.app-category.utilities" },
    "win": { "target": "nsis" },
    "linux": { "target": ["AppImage", "deb"] }
  }
}

Stärken:

  • Sehr ausgereift, viele Plattform-Optionen
  • Code-Signing für macOS und Windows mit minimaler Konfiguration
  • Auto-Update via electron-updater (Schwester-Paket)
  • Multi-Platform-Builds (mit Einschränkungen — Mac-Builds nur auf Mac wegen Signing)

Schwächen:

  • Konfiguration kann komplex werden
  • Macht keine Dev-Pipeline, nur Packaging — du brauchst zusätzlich Vite o. ä.

Electron Forge

Offizielles All-in-One-Toolkit vom Electron-Team. Kombiniert Dev-Server, Build, Packaging und Publishing in einem CLI.

Bash Scaffold
npm init electron-app@latest my-app -- --template=vite

Templates: vanilla, webpack, vite, vite-typescript u. a.

Bash Typische Befehle
npm start              # Dev-Server mit HMR
npm run package        # Unverpackte App in out/
npm run make           # Distribuierbare Pakete (DMG, NSIS, deb …)
npm run publish        # Direkt zu GitHub Releases o. ä.

Stärken:

  • Aus einer Hand — Setup, Entwicklung, Packaging, Publish
  • Integriertes Plugin-System (Maker für DMG, NSIS, Squirrel; Publishers für GitHub, S3, Azure)
  • Wird vom Electron-Team gepflegt (long-term mit Electron synchron)

Schwächen:

  • Andere Konfig-Logik als electron-builder — Migration zwischen beiden ist Aufwand
  • Etwas mehr „Magic” — bei spezifischen Anforderungen muss man tief in die Plugin-Konfiguration

Entscheidungs-Matrix

AnforderungEmpfehlung
Lernen / Hello-Worldplain npm
Tooling-affin, viel Kontrolleelectron-vite + electron-builder
Standardprojekt, möglichst wenig KonfigElectron Forge
Komplexes Custom-Packagingelectron-builder
Bereits Vite-affin im Teamelectron-vite + electron-builder
Fokus auf Auto-Update via GitHubbeide gehen — Builder etwas verbreiteter

In der Praxis: electron-vite + electron-builder ist der häufigste Modern-Stack in 2026. Electron Forge holt auf, vor allem für neue Projekte ohne historische Builder-Konfiguration.

Was alle Tools NICHT lösen

Egal welches Tool — folgende Themen musst du selbst angehen:

  • Code-Signing-Zertifikate — bei Apple kostenpflichtig, bei Windows OV/EV-Zert
  • macOS Notarization — Apple-Service, dauert oft Minuten pro Build
  • CI/CD-Setup — GitHub Actions, GitLab CI etc.; Mac-Builds nur auf Mac-Runnern
  • Update-Server — GitHub Releases reicht oft, manche brauchen eigenen S3-Bucket

Tools machen Packaging, aber nicht den ganzen Distributions-Prozess.

FAQ

Kann ich Forge und electron-builder mischen?

Theoretisch ja, praktisch verwirrend. Beide haben überlappende Konfig (build-Feld in package.json). Lieber konsequent eines wählen. Bei Migration zwischen beiden: Konfig komplett übernehmen, nicht beide parallel.

Welches Tool ist offiziell?

Electron Forge ist offiziell vom Electron-Team. Aber: das macht es nicht automatisch besser. electron-builder ist Community, dafür länger am Markt und in vielen großen Apps eingesetzt (Atom, früher VS Code, viele kommerzielle Apps).

Was ist mit electron-packager?

Ist das Low-Level-Tool, auf dem Forge aufbaut. Direkt nutzen ist möglich, aber für die meisten Projekte zu nackt — kein Maker-System, kein Publish, keine Auto-Updates. In neuen Projekten nimmst du Forge oder Builder, nicht direkt Packager.

Brauche ich Vite, oder reicht webpack?

Webpack funktioniert weiter, ist aber gegenüber Vite spürbar langsamer in Dev. Forge bietet beide Templates. Für neue Projekte: Vite. Bei bestehender Webpack-Konfig: nicht zwingend migrieren.

Kann ich von plain npm zu Forge migrieren?

Ja, Forge installiert sich in bestehende Projekte (npm install --save-dev @electron-forge/cli && npx electron-forge import). Funktioniert meist, manuelles Aufräumen aber wahrscheinlich. Bei größeren Projekten lieber neues Forge-Projekt aufsetzen und Code übertragen.

HMR im Main-Prozess — geht das?

Vite HMR funktioniert nur im Renderer. Beim Main-Prozess: bei jeder Änderung musst du die App neu starten. electron-vite hat einen Watch-Modus, der das automatisch macht — aber HMR im klassischen Sinn (State-erhaltend) gibt’s nicht. Hat mit der Architektur zu tun (Main = Node-Prozess, kein Module-Hot-Replacement-Konzept).

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Einstieg

Zur Übersicht