Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Options

Options passed to the packager() function.

Hierarchy

  • Options

Index

Other Properties

Optional afterCopy

afterCopy: HookFunction[]

Functions to be called after your app directory has been copied to a temporary directory.

Note: afterCopy will not be called if the prebuiltAsar option is set.

Optional afterExtract

afterExtract: HookFunction[]

Functions to be called after the prebuilt Electron binary has been extracted to a temporary directory.

Optional afterPrune

afterPrune: HookFunction[]

Functions to be called after Node module pruning has been applied to the application.

Note: None of these functions will be called if the prune option is false or the prebuiltAsar option is set.

Optional all

all: boolean

When true, sets both arch and platform to all.

Optional appBundleId

appBundleId: string

Optional appCopyright

appCopyright: string

The human-readable copyright line for the app. Maps to the LegalCopyright metadata property on Windows, and NSHumanReadableCopyright on macOS.

Optional appVersion

appVersion: string

The release version of the application.

By default the version property in the package.json is used, but it can be overridden with this argument. If neither are provided, the version of Electron will be used. Maps to the ProductVersion metadata property on Windows, and CFBundleShortVersionString on macOS.

Optional arch

The target system architecture(s) to build for.

Not required if the all option is set. If arch is set to all, all supported architectures for the target platforms specified by platform will be built. Arbitrary combinations of individual architectures are also supported via a comma-delimited string or array of strings. The non-all values correspond to the architecture names used by Electron releases. This value is not restricted to the official set if download.mirrorOptions is set.

Defaults to the arch of the host computer running Electron Packager.

Arch values for the official prebuilt Electron binaries:

  • ia32
  • x64
  • armv7l
  • arm64 (Electron 1.8.0 and above)
  • mips64el (Electron 1.8.2-beta.5 to 1.8.8)

Optional asar

asar: boolean | AsarOptions

Whether to package the application's source code into an archive, using Electron's archive format. Reasons why you may want to enable this feature are described in an application packaging tutorial in Electron's documentation. When the value is true, it passes the default configuration to the asar module. The configuration values can be customized when the value is an Object. Supported sub-options include, but are not limited to:

  • ordering (string): A path to an ordering file for packing files. An explanation can be found on the Atom issue tracker.
  • unpack (string): A glob expression, when specified, unpacks the file with matching names to the app.asar.unpacked directory.
  • unpackDir (string): Unpacks the dir to the app.asar.unpacked directory whose names exactly or pattern match this string. The asar.unpackDir is relative to dir.

Defaults to false.

Some examples:

  • asar.unpackDir = 'sub_dir' will unpack the directory /<dir>/sub_dir
  • asar.unpackDir = path.join('**', '{sub_dir1/sub_sub_dir,sub_dir2}', '*') will unpack the directories /<dir>/sub_dir1/sub_sub_dir and /<dir>/sub_dir2, but it will not include their subdirectories.
  • asar.unpackDir = path.join('**', '{sub_dir1/sub_sub_dir,sub_dir2}', '**') will unpack the subdirectories of the directories /<dir>/sub_dir1/sub_sub_dir and /<dir>/sub_dir2.
  • asar.unpackDir = path.join('**', '{sub_dir1/sub_sub_dir,sub_dir2}', '**', '*') will unpack the directories /<dir>/sub_dir1/sub_sub_dir and /<dir>/sub_dir2 and their subdirectories.

Note: asar will have no effect if the prebuiltAsar option is set.

Optional buildVersion

buildVersion: string

The build version of the application. Defaults to the value of the appVersion option. Maps to the FileVersion metadata property on Windows, and CFBundleVersion on macOS.

Optional derefSymlinks

derefSymlinks: boolean

Whether symlinks should be dereferenced during the copying of the application source. Defaults to true.

Note: derefSymlinks will have no effect if the prebuiltAsar option is set.

dir

dir: string

The source directory.

Optional download

download: ElectronDownloadOptions

If present, passes custom options to @electron/get. See the module for option descriptions, proxy support, and defaults. Supported parameters include, but are not limited to:

  • cacheRoot (string): The directory where prebuilt, pre-packaged Electron downloads are cached.
  • mirrorOptions (Object): Options to override the default Electron download location.
  • rejectUnauthorized (boolean - default: true): Whether SSL certificates are required to be valid when downloading Electron.

Note: download sub-options will have no effect if the electronZipDir option is set.

Optional electronVersion

electronVersion: string

The Electron version with which the app is built (without the leading 'v') - for example, 1.4.13. See Electron releases for valid versions. If omitted, it will use the version of the nearest local installation of electron, electron-prebuilt-compile, or electron-prebuilt, defined in package.json in either devDependencies or dependencies.

Optional electronZipDir

electronZipDir: string

The local path to a directory containing Electron ZIP files for Electron Packager to unzip, instead of downloading them. The ZIP filenames should be in the same format as the ones downloaded from the Electron releases site.

Note: Setting this option prevents the download sub-options from being used, as the functionality gets skipped over.

Optional executableName

executableName: string

The name of the executable file, sans file extension. Defaults to the value for the name option. For darwin or mas target platforms, this does not affect the name of the .app folder - this will use the name option instead.

Optional extraResource

extraResource: string | string[]

One or more files to be copied directly into the app's Contents/Resources directory for macOS target platforms, and the resources directory for other target platforms.

Optional icon

icon: string

The local path to the icon file, if the target platform supports setting embedding an icon.

Currently you must look for conversion tools in order to supply an icon in the format required by the platform:

  • macOS: .icns
  • Windows: .ico (See the readme for details on non-Windows platforms)
  • Linux: this option is not supported, as the dock/window list icon is set via the icon option in the BrowserWindow constructor. *Please note that you need to use a PNG, and not the macOS or Windows icon formats, in order for it to show up in the dock/window list.* Setting the icon in the file manager is not currently supported.

If the file extension is omitted, it is auto-completed to the correct extension based on the platform, including when platform: 'all' is in effect.

Optional ignore

ignore: RegExp | RegExp[] | IgnoreFunction

One or more additional regular expression patterns which specify which files to ignore when copying files to create the app bundle(s). The regular expressions are matched against the absolute path of a given file/directory to be copied.

Please note that glob patterns will not work.

The following paths are always ignored (when you aren't using an IgnoreFunction):

  • the directory specified by the out option
  • the temporary directory used to build the Electron app
  • node_modules/.bin
  • node_modules/electron
  • node_modules/electron-prebuilt
  • node_modules/electron-prebuilt-compile
  • .git
  • files and folders ending in .o and .obj

Note: Node modules specified in devDependencies are ignored by default, via the prune option.

Note: ignore will have no effect if the prebuiltAsar option is set.

Optional junk

junk: boolean

Ignores system junk files when copying the Electron app, regardless of the ignore option.

Note: junk will have no effect if the prebuiltAsar option is set.

Optional name

name: string

The application name. If omitted, it will use the productName or name value from the nearest package.json.

Regardless of source, characters in the Electron app name which are not allowed in all target platforms' filenames (e.g., /), will be replaced by hyphens (-).

Optional out

out: string

The base directory where the finished package(s) are created.

Defaults to the current working directory.

Optional overwrite

overwrite: boolean

Whether to replace an already existing output directory for a given platform (true) or skip recreating it (false). Defaults to false.

Optional platform

The target platform(s) to build for.

Not required if the all option is set. If platform is set to all, all officially supported target platforms for the target architectures specified by the arch option will be built. Arbitrary combinations of individual platforms are also supported via a comma-delimited string or array of strings.

The official non-all values correspond to the platform names used by Electron releases. This value is not restricted to the official set if `download.mirrorOptions is set.

Defaults to the platform of the host computer running Electron Packager.

Platform values for the official prebuilt Electron binaries:

  • darwin (macOS)
  • linux
  • mas (macOS, specifically for submitting to the Mac App Store)
  • win32

Optional prebuiltAsar

prebuiltAsar: string

The path to a prebuilt ASAR file.

Note: Setting this option prevents the following options from being used, as the functionality gets skipped over:

Optional prune

prune: boolean

Walks the node_modules dependency tree to remove all of the packages specified in the devDependencies section of package.json from the outputted Electron app.

Defaults to true.

Note: prune will have no effect if the prebuiltAsar option is set.

Optional quiet

quiet: boolean

If true, disables printing informational and warning messages to the console when packaging the application. This does not disable errors.

Defaults to false.

Optional tmpdir

tmpdir: string | false

The base directory to use as a temporary directory. Set to false to disable use of a temporary directory. Defaults to the system's temporary directory.

Windows Properties

Optional win32metadata

win32metadata: Win32MetadataOptions

Application metadata to embed into the Windows executable.

macOS Properties

Optional appCategoryType

appCategoryType: string

The application category type, as shown in the Finder via View → Arrange by Application Category when viewing the Applications directory.

For example, app-category-type=public.app-category.developer-tools will set the application category to Developer Tools.

Valid values are listed in Apple's documentation.

Optional darwinDarkModeSupport

darwinDarkModeSupport: boolean

Forces support for Mojave (macOS 10.14) dark mode in your packaged app. This sets the NSRequiresAquaSystemAppearance key to false in your app's Info.plist. For more information, see the Electron documentation and the Apple developer documentation.

Optional extendInfo

extendInfo: string | {}

When the value is a string, specifies the filename of a plist file. Its contents are merged into the app's Info.plist. When the value is an Object, it specifies an already-parsed plist data structure that is merged into the app's Info.plist.

Entries from extendInfo override entries in the base Info.plist file supplied by electron, electron-prebuilt-compile, or electron-prebuilt, but are overridden by other options such as appVersion or appBundleId.

Optional helperBundleId

helperBundleId: string

The bundle identifier to use in the application helper's Info.plist.

Optional osxNotarize

osxNotarize: OsxNotarizeOptions

If present, notarizes macOS target apps when the host platform is macOS and XCode is installed. See electron-notarize for option descriptions, such as how to use appleIdPassword safely or obtain an API key.

Requires the osxSign option to be set.

Optional osxSign

osxSign: true | OsxSignOptions

If present, signs macOS target apps when the host platform is macOS and XCode is installed. When the value is true, pass default configuration to the signing module. See electron-osx-sign for sub-option descriptions and their defaults. Options include, but are not limited to:

  • identity (string): The identity used when signing the package via codesign.
  • entitlements (string): The path to the 'parent' entitlements.
  • entitlements-inherit (string): The path to the 'child' entitlements.

Optional protocols

protocols: MacOSProtocol[]

The URL protocol schemes associated with the Electron app.

Optional usageDescription

usageDescription: {}

Human-readable descriptions of how the Electron app uses certain macOS features. These are displayed in the App Store. A non-exhaustive list of available properties:

  • Camera - required for media access API usage in macOS Catalina
  • Microphone - required for media access API usage in macOS Catalina

Valid properties are the Cocoa keys for MacOS of the pattern NS(.*)UsageDescription, where the captured group is the key to use.

Example:

{
  usageDescription: {
    Camera: 'Needed for video calls',
    Microphone: 'Needed for voice calls'
  }
}

Type declaration

  • [property: string]: string

Generated using TypeDoc