Skip to content

Command Line Interface (CLI)

Commands:
  electron-builder build                    Build                      [default]
  electron-builder install-app-deps         Install app deps
  electron-builder node-gyp-rebuild         Rebuild own native code
  electron-builder create-self-signed-cert  Create self-signed code signing cert
                                            for Windows apps
  electron-builder start                    Run application in a development
                                            mode using electron-webpack
  electron-builder publish                  Publish any files with your publish config

Building:
  --mac, -m, -o, --macos   Build for macOS, accepts target list (see
                           https://goo.gl/5uHuzj).                       [array]
  --linux, -l              Build for Linux, accepts target list (see
                           https://goo.gl/4vwQad)                        [array]
  --win, -w, --windows     Build for Windows, accepts target list (see
                           https://goo.gl/jYsTEJ)                        [array]
  --x64                    Build for x64                               [boolean]
  --ia32                   Build for ia32                              [boolean]
  --armv7l                 Build for armv7l                            [boolean]
  --arm64                  Build for arm64                             [boolean]
  --universal              Build for universal (mac only)              [boolean]
  --dir                    Build unpacked dir. Useful to test.         [boolean]
  --prepackaged, --pd      The path to prepackaged app (to pack in a
                           distributable format)
  --projectDir, --project  The path to project directory. Defaults to current
                           working directory.
  --config, -c             The path to an electron-builder config. Defaults to
                           `electron-builder.yml` (or `json`, or `json5`, or `js`, or `ts`), see
                           https://goo.gl/YFRJOM

Publishing:
  --publish, -p  Publish artifacts (to GitHub Releases), see
                 https://goo.gl/tSFycD
                [choices: "onTag", "onTagOrDraft", "always", "never", undefined]


-----

electron-builder publish

Publish a list of artifacts

Options:
  -v, --version  The app/build version used when searching for an upload release
                 (used by some Publishers)                              [string]
      --help     Show help                                             [boolean]
  -f, --files    The file(s) to upload to your publisher      [array] [required]
  -c, --config   The path to an electron-builder config. Defaults to
                 `electron-builder.yml` (or `json`, or `json5`, or `js`, or
                 `ts`), see https://goo.gl/YFRJOM                       [string]

Other:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]

For other commands please see help using --help arg, e.g. ./node_modules/.bin/electron-builder install-app-deps --help

Tip

Since Node.js 8 npx is bundled, so, you can simply use npx electron-builder.

Prepend npx to sample commands below if you run it from Terminal and not from package.json scripts.

build for macOS, Windows and Linux

electron-builder -mwl

build deb and tar.xz for Linux

electron-builder --linux deb tar.xz

build NSIS 32-bit installer for Windows

electron-builder --windows nsis:ia32

set package.json property foo to bar

electron-builder -c.extraMetadata.foo=bar

configure unicode options for NSIS

electron-builder -c.nsis.unicode=false

Target

Without target configuration, electron-builder builds Electron app for current platform and current architecture using default target.

  • macOS - DMG and ZIP for Squirrel.Mac.
  • Windows - [NSIS]./nsis.md).
  • Linux:
    • if you build on Windows or macOS: Snap and AppImage for x64.
    • if you build on Linux: Snap and AppImage for current architecture.

Platforms and archs can be configured or using CLI args, or in the configuration.

For example, if you don’t want to pass --ia32 and --x64 flags each time, but instead build by default NSIS target for all archs for Windows:

Configuration

package.json

"build": {
  "win": {
    "target": [
      {
        "target": "nsis",
        "arch": [
          "x64",
          "ia32"
        ]
      }
    ]
  },
  "mac": {
    "target": [
      {
        "target": "dmg",
        "arch": [
          "universal"
        ]
      }
    ]
  }
}

electron-builder.yml

 win:
   target:
     - target: nsis
       arch:
         - x64
         - ia32
mac:
  target:
    - target: dmg
      arch: universal

electron-builder.config.js

module.exports = {
  "win": {
    "target": [
      {
        "target": "nsis",
        "arch": [
          "x64",
          "ia32"
        ]
      }
    ]
  },
  "mac": {
    "target": [
      {
        "target": "dmg",
        "arch": [
          "universal"
        ]
      }
    ]
  }
}

and use

build -wl

TargetConfiguration

  • target String - The target name. e.g. snap.
  • arch “x64” | “ia32” | “armv7l” | “arm64” | “universal” - The arch or list of archs.