You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.2 KiB
4.2 KiB
Electron Build Scripts Guide
Author: Matthew Raymer
Date: 2025-07-11
Status: ACTIVE - Production Ready
Overview
This document clarifies the difference between Electron build scripts that create executable packages versus those that run the app directly.
Script Categories
🚀 Development Scripts (Run App Directly)
These scripts build the app and then run it immediately for development:
# Development mode - runs app directly
npm run build:electron:dev
# Test mode - runs app directly
npm run build:electron:test
# Production mode - runs app directly
npm run build:electron:prod
📦 Package Build Scripts (Create Executables)
These scripts build executable packages that can be distributed and run by users:
Platform-Specific Executables
# Windows executable (.exe)
npm run build:electron:windows
npm run build:electron:windows:dev
npm run build:electron:windows:test
npm run build:electron:windows:prod
# macOS app bundle (.app)
npm run build:electron:mac
npm run build:electron:mac:dev
npm run build:electron:mac:test
npm run build:electron:mac:prod
# Linux executable
npm run build:electron:linux
npm run build:electron:linux:dev
npm run build:electron:linux:test
npm run build:electron:linux:prod
Package Formats
# Linux AppImage (portable executable)
npm run build:electron:appimage
npm run build:electron:appimage:dev
npm run build:electron:appimage:test
npm run build:electron:appimage:prod
# Linux DEB package (installable)
npm run build:electron:deb
npm run build:electron:deb:dev
npm run build:electron:deb:test
npm run build:electron:deb:prod
# macOS DMG package (installable)
npm run build:electron:dmg
npm run build:electron:dmg:dev
npm run build:electron:dmg:test
npm run build:electron:dmg:prod
Output Locations
Development Scripts
- Run the app directly in development mode
- No files created for distribution
- App runs immediately after build
Package Scripts
- Create executable files in
electron/dist/
- Files can be distributed to users
- Users can run the executables by hand
Package Output Examples
# AppImage
electron/dist/TimeSafari-1.0.3-beta.AppImage
# DEB package
electron/dist/TimeSafari_1.0.3-beta_amd64.deb
# DMG package
electron/dist/TimeSafari-1.0.3-beta.dmg
# Windows executable
electron/dist/TimeSafari Setup 1.0.3-beta.exe
Usage Examples
Development Workflow
# Start development (runs app directly)
npm run build:electron:dev
# Test with production build (runs app directly)
npm run build:electron:test
Distribution Workflow
# Build AppImage for Linux distribution
npm run build:electron:appimage:prod
# Build DMG for macOS distribution
npm run build:electron:dmg:prod
# Build Windows installer
npm run build:electron:windows:prod
Testing Packages
# Build test version of AppImage
npm run build:electron:appimage:test
# Test the generated executable
./electron/dist/TimeSafari-1.0.3-beta.AppImage
Key Differences
Script Type | Purpose | Output | User Action |
---|---|---|---|
Development | Run app directly | None | App starts automatically |
Package | Create executable | electron/dist/ |
User runs executable by hand |
Best Practices
For Development
- Use
npm run build:electron:dev
for daily development - Use
npm run build:electron:test
for testing production builds - App runs immediately after build
For Distribution
- Use
npm run build:electron:*:prod
for production packages - Test packages before distribution
- Users install/run the generated executables
For Testing
- Use
npm run build:electron:*:test
for test packages - Verify executables work on target platforms
- Test installation and uninstallation
Troubleshooting
Package Build Issues
# Check if package was created
ls -la electron/dist/
# Verify package integrity
file electron/dist/*.AppImage
file electron/dist/*.deb
file electron/dist/*.dmg
Development Issues
# Clean and rebuild
npm run clean:electron
npm run build:electron:dev
Last Updated: 2025-07-11
Version: 1.0.3-beta
Status: Production Ready