Skip to content

Latest commit

 

History

History
204 lines (180 loc) · 15.6 KB

configuration.md

File metadata and controls

204 lines (180 loc) · 15.6 KB

electron-builder configuration can be defined

  • in the package.json file of your project using the build 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 to electron-builder.yml.

    appId: "com.example.app"

    json, json5, toml or js (exported configuration or function that produces configuration) formats also supported.

    !!! tip If you want to use js file, do not name it electron-builder.js. It will conflict with electron-builder package name.

    !!! 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.

Artifact File Name Template

${ext} macro is supported in addition to file macros.

Environment Variables from File

Env file electron-builder.env in the current dir (example). Supported only for CLI usage.

How to Read Docs

  • 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"]).

Configuration

  • 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. If not specified inside of the build configuration, productName property defined at the top level of package.json is used. If not specified at the top level of package.json, name property is used.
  • copyright = Copyright © year ${author} String | “undefined” - The human-readable copyright line for the app.





  • buildDependenciesFromSource = false Boolean - Whether to build the application native dependencies from source.

  • nodeGypRebuild = false Boolean - Whether to execute node-gyp rebuild before starting to package the app.

    Don’t use npm (neither .npmrc) for configuring electron headers. Use electron-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 the CFBundleVersion on macOS, and FileVersion metadata property on Windows. Defaults to the version. If TRAVIS_BUILD_NUMBER or APPVEYOR_BUILD_NUMBER or CIRCLE_BUILD_NUM or BUILD_NUMBER or bamboo.buildNumber or CI_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 to true if electron-compile in the dependencies. And false if in the devDependencies 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 pattern electron-v${version}-${platformName}-${arch}.zip, otherwise it will be assumed to be an unpacked Electron app directory

  • electronDownload - The electron-download options.

    • version String
    • cache String | “undefined” - The cache location.
    • mirror String | “undefined” - The mirror.
    • strictSSL Boolean
    • isVerifyChecksum Boolean
    • platform “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 of electron, electron-prebuilt or electron-prebuilt-compile dependency.

  • extends Array<String> | String | “undefined” - The name of a built-in configuration preset (currently, only react-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 combine files glob patterns.

    If react-scripts in the app dependencies, react-cra will be set automatically. Set to null to disable automatic detection.

  • extraMetadata any - Inject properties to package.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 to current 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 of electron, proton, libui. Defaults to electron.
  • 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 when npmRebuild is set to true. Resolving to false 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 remove scripts field from package.json files.
  • removePackageKeywords = true Boolean - Whether to remove keywords field from package.json files.

Overridable per Platform Options

Following options can be set also per platform (top-level keys mac, linux and win) if need.

{!generated/PlatformSpecificBuildOptions.md!}

Metadata

Some standard fields should be defined in the package.json.

{!generated/Metadata.md!}

Proton Native

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.

Build Version Management

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!}