electron-builder configuration can be defined
-
in the
package.json
file of your project using thebuild
key on the top level:"build": { "appId": "com.example.app" }
-
or through the
--config <path/to/yml-or-json5-or-toml-or-js>
option. Defaults toelectron-builder.yml
.appId: "com.example.app"
json
, json5, toml orjs
(exported configuration or function that produces configuration) formats also supported.!!! tip If you want to use toml, please install
yarn add toml --dev
.
Most of the options accept null
— for example, to explicitly set that DMG icon must be default volume icon from the OS and default rules must be not applied (i.e. use application icon as DMG icon), set dmg.icon
to null
.
${ext}
macro is supported in addition to file macros.
Env file electron-builder.env
in the current dir (example). Supported only for CLI usage.
- Name of optional property is normal, required is bold.
- Type is specified after property name:
Array<String> | String
. Union like this means that you can specify or string (**/*
), or array of strings (["**/*", "!foo.js"]
).
appId
=com.electron.${name}
String | “undefined” - The application id. Used as CFBundleIdentifier for MacOS and as Application User Model ID for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.productName
String | “undefined” - As name, but allows you to specify a product name for your executable which contains spaces and other special characters not allowed in the name property.copyright
=Copyright © year ${author}
String | “undefined” - The human-readable copyright line for the app.
directories
MetadataDirectories | “undefined”
mac
MacConfiguration - Options related to how build macOS targets.mas
MasConfiguration - MAS (Mac Application Store) options.masDev
MasConfiguration - MAS (Mac Application Store) development options (mas-dev
target).dmg
DmgOptions - macOS DMG options.pkg
PkgOptions - macOS PKG options.
win
WindowsConfiguration - Options related to how build Windows targets.nsis
NsisOptionsnsisWeb
NsisWebOptions | “undefined”portable
PortableOptions | “undefined”appx
AppXOptionssquirrelWindows
SquirrelWindowsOptions
linux
LinuxConfiguration - Options related to how build Linux targets.deb
DebOptions - Debian package options.snap
SnapOptions - Snap options.appImage
AppImageOptions - AppImage options.flatpak
FlatpakOptions | “undefined” - Flatpak options.pacman
LinuxTargetSpecificOptionsrpm
LinuxTargetSpecificOptionsfreebsd
LinuxTargetSpecificOptionsp5p
LinuxTargetSpecificOptionsapk
LinuxTargetSpecificOptionsincludeSubNodeModules
=false
Boolean - Whether to include all of the submodules node_modules directories
-
buildDependenciesFromSource
=false
Boolean - Whether to build the application native dependencies from source. -
nodeGypRebuild
=false
Boolean - Whether to executenode-gyp rebuild
before starting to package the app.Don’t use npm (neither
.npmrc
) for configuring electron headers. Useelectron-builder node-gyp-rebuild
instead. -
npmArgs
Array<String> | String | “undefined” - Additional command line arguments to use when installing app native deps. -
npmRebuild
=true
Boolean - Whether to rebuild native dependencies before starting to package the app.
-
buildVersion
String | “undefined” - The build version. Maps to theCFBundleVersion
on macOS, andFileVersion
metadata property on Windows. Defaults to theversion
. IfTRAVIS_BUILD_NUMBER
orAPPVEYOR_BUILD_NUMBER
orCIRCLE_BUILD_NUM
orBUILD_NUMBER
orbamboo.buildNumber
orCI_PIPELINE_IID
env defined, it will be used as a build version (version.build_number
). -
electronCompile
Boolean - Whether to use electron-compile to compile app. Defaults totrue
ifelectron-compile
in the dependencies. Andfalse
if in thedevDependencies
or doesn’t specified. -
electronDist
String | module:app-builder-lib/out/configuration.__type - Returns the path to custom Electron build (e.g.~/electron/out/R
). Zip files must follow the patternelectron-v${version}-${platformName}-${arch}.zip
, otherwise it will be assumed to be an unpacked Electron app directory -
electronDownload
- The electron-download options.version
Stringcache
String | “undefined” - The cache location.mirror
String | “undefined” - The mirror.strictSSL
BooleanisVerifyChecksum
Booleanplatform
“darwin” | “linux” | “win32” | “mas”arch
String
-
electronBranding
ElectronBrandingOptions - The branding used by Electron’s distributables. This is needed if a fork has modified Electron’s BRANDING.json file. -
electronVersion
String | “undefined” - The version of electron you are packaging for. Defaults to version ofelectron
,electron-prebuilt
orelectron-prebuilt-compile
dependency. -
extends
Array<String> | String | “undefined” - The name of a built-in configuration preset (currently, onlyreact-cra
is supported) or any number of paths to config files (relative to project dir).The latter allows to mixin a config from multiple other configs, as if you
Object.assign
them, but properly combinefiles
glob patterns.If
react-scripts
in the app dependencies,react-cra
will be set automatically. Set tonull
to disable automatic detection. -
extraMetadata
any - Inject properties topackage.json
.
forceCodeSigning
=false
Boolean - Whether to fail if the application is not signed (to prevent unsigned app if code signing configuration is not correct).nodeVersion
String | “undefined” - libui-based frameworks only The version of NodeJS you are packaging for. You can set it tocurrent
to set the Node.js version that you use to run.launchUiVersion
Boolean | String | “undefined” - libui-based frameworks only The version of LaunchUI you are packaging for. Applicable for Windows only. Defaults to version suitable for used framework version.framework
String | “undefined” - The framework name. One ofelectron
,proton
,libui
. Defaults toelectron
.beforePack
module:app-builder-lib/out/configuration.__type | String | “undefined” - The function (or path to file or module id) to be run before pack
-
afterPack
- The function (or path to file or module id) to be run after pack (but before pack into distributable format and sign). -
afterSign
- The function (or path to file or module id) to be run after pack and sign (but before pack into distributable format). -
artifactBuildStarted
module:app-builder-lib/out/configuration.__type | String | “undefined” - The function (or path to file or module id) to be run on artifact build start. -
artifactBuildCompleted
module:app-builder-lib/out/configuration.__type | String | “undefined” - The function (or path to file or module id) to be run on artifact build completed. -
afterAllArtifactBuild
- The function (or path to file or module id) to be run after all artifacts are build. -
msiProjectCreated
module:app-builder-lib/out/configuration.__type | String | “undefined” - MSI project created on disk - not packed into .msi package yet. -
appxManifestCreated
module:app-builder-lib/out/configuration.__type | String | “undefined” - Appx manifest created on disk - not packed into .appx package yet. -
onNodeModuleFile
- The function (or path to file or module id) to be run on each node module file. -
beforeBuild
(context: BeforeBuildContext) => Promise | null - The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works whennpmRebuild
is set totrue
. Resolving tofalse
will skip dependencies install or rebuild.If provided and
node_modules
are missing, it will not invoke production dependencies check.
remoteBuild
=true
Boolean - Whether to build using Electron Build Service if target not supported on current OS.includePdb
=false
Boolean - Whether to include PDB files.removePackageScripts
=true
Boolean - Whether to removescripts
field frompackage.json
files.removePackageKeywords
=true
Boolean - Whether to removekeywords
field frompackage.json
files.
Following options can be set also per platform (top-level keys mac, linux and win) if need.
{!generated/PlatformSpecificBuildOptions.md!}
Some standard fields should be defined in the package.json
.
{!generated/Metadata.md!}
To package Proton Native app, set protonNodeVersion
option to current
or specific NodeJS version that you are packaging for.
Currently, only macOS and Linux supported.
CFBundleVersion
(macOS) and FileVersion
(Windows) will be set automatically to version.build_number
on CI server (Travis, AppVeyor, CircleCI and Bamboo supported).
{!includes/hooks.md!}