Skip to main content
electron-builder provides extensive command-line options for controlling the build process.

Building Options

Platform Selection

--mac
array
Build for macOS. Accepts target list.Aliases: -m, -o, --macos
electron-builder --mac
electron-builder --mac dmg zip
--win
array
Build for Windows. Accepts target list.Aliases: -w, --windows
electron-builder --win
electron-builder --win nsis portable
--linux
array
Build for Linux. Accepts target list.Aliases: -l
electron-builder --linux
electron-builder --linux deb rpm AppImage

Architecture Options

--x64
boolean
Build for x64 (64-bit) architecture.
electron-builder --win --x64
--ia32
boolean
Build for ia32 (32-bit) architecture.
electron-builder --win --ia32
--armv7l
boolean
Build for armv7l architecture.
electron-builder --linux --armv7l
--arm64
boolean
Build for arm64 architecture (Apple Silicon, ARM-based systems).
electron-builder --mac --arm64
--universal
boolean
Build universal binary for macOS (supports both Intel and Apple Silicon).
electron-builder --mac --universal

Build Configuration

--dir
boolean
Build unpacked directory instead of distributable packages. Useful for testing.
electron-builder --dir
--config
string
Path to an electron-builder config file. Defaults to electron-builder.yml (or json, json5, js, ts).Aliases: -c
electron-builder --config custom-config.json
See Configuration for more details.
--projectDir
string
Path to project directory. Defaults to current working directory.Aliases: --project
electron-builder --projectDir /path/to/project
--prepackaged
string
Path to prepackaged app directory (to pack in a distributable format).Aliases: --pd
electron-builder --prepackaged /path/to/app

Publishing Options

--publish
string
When to publish artifacts. See Publishing for more details.Aliases: -pChoices:
  • onTag - Publish only on tagged releases
  • onTagOrDraft - Publish on tagged releases or drafts
  • always - Always publish
  • never - Never publish
electron-builder --publish always
electron-builder -p onTag

Configuration Overrides

You can override configuration values using dot notation:
# Set package.json property `foo` to `bar`
electron-builder -c.extraMetadata.foo=bar

# Configure NSIS unicode option
electron-builder --config.nsis.unicode=false

# Set application ID
electron-builder -c.appId=com.example.myapp

Common Examples

Multi-platform builds

# Build for all platforms
electron-builder -mwl

# Build for macOS and Windows only
electron-builder -mw

Platform-specific targets

# Build specific Linux targets
electron-builder --linux deb tar.xz

# Build NSIS installer for Windows
electron-builder --win nsis

# Build DMG and ZIP for macOS
electron-builder --mac dmg zip

Architecture combinations

# Build for both x64 and ia32
electron-builder --win --x64 --ia32

# Build ARM64 and x64 for macOS
electron-builder --mac --arm64 --x64

Target with specific architecture

# Build 32-bit NSIS installer
electron-builder --windows nsis:ia32

# Build 64-bit AppImage
electron-builder --linux AppImage:x64

Other Options

--help
boolean
Show help information.
electron-builder --help
--version
boolean
Show version number.
electron-builder --version

Default Targets

Without target configuration, electron-builder builds for the current platform and architecture using default targets:
  • macOS: DMG and ZIP for Squirrel.Mac
  • Windows: NSIS
  • Linux:
    • If building on Windows or macOS: Snap and AppImage for x64
    • If building on Linux: Snap and AppImage for current architecture

Environment Variables

electron-builder respects various environment variables. You can also use an electron-builder.env file in your project root to set environment-specific configuration. For more information, see the Configuration documentation.

Build docs developers (and LLMs) love