Functions to be called after your app directory has been packaged into an .asar file.
Note: afterAsar will only be called if the asar option is set.
Functions to be called after the packaged application has been moved to the final directory.
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.
Functions to be called after the files specified in the extraResource option have been copied.
Functions to be called after the prebuilt Electron binary has been extracted to a temporary directory.
Functions to be called after the final matrix of platform/arch combination is determined. Use this to learn what archs/platforms packager is targetting when you pass "all" as a value.
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.
The human-readable copyright line for the app. Maps to the LegalCopyright metadata
property on Windows, and NSHumanReadableCopyright on macOS.
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.
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:
ia32x64armv7larm64 (Linux: Electron 1.8.0 and above; Windows: 6.0.8 and above; macOS: 11.0.0-beta.1 and above)mips64el (Electron 1.8.2-beta.5 to 1.8.8)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 include mitigating issues around long path names on Windows, slightly speeding
up require, and concealing your source code from cursory inspection. 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_dirasar.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.
Functions to be called before your app directory is packaged into an .asar file.
Note: beforeAsar will only be called if the asar option is set.
Functions to be called before your app directory is copied to a temporary directory.
Note: beforeCopy will not be called if the prebuiltAsar option is set.
Functions to be called before the files specified in the extraResource option are copied.
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.
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.
The source directory.
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.
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 or electron-nightly
defined in package.json in either devDependencies or dependencies.
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.
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. The
resources directory can be referenced in the packaged app via the
process.resourcesPath value.
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:
.icns.ico (See the readme for details on non-Windows platforms)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.
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):
node_modules/.binnode_modules/electronnode_modules/electron-nightly.git.o and .objNote: 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.
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.
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 (-).
Used to provide custom options to the internal call to @electron/universal when building a macOS
app with the target architecture of "universal". Unused otherwise, providing a value does not imply
a universal app is built.
The base directory where the finished package(s) are created.
Defaults to the current working directory.
Whether to replace an already existing output directory for a given platform (true) or
skip recreating it (false). Defaults to false.
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)linuxmas (macOS, specifically for submitting to the Mac App Store)win32The path to a prebuilt ASAR file.
Note: Setting this option prevents the following options from being used, as the functionality gets skipped over:
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.
If true, disables printing informational and warning messages to the console when
packaging the application. This does not disable errors.
Defaults to 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.
Application metadata to embed into the Windows executable.
If present, signs Windows binary files.
When the value is true, pass default configuration to the signing module. See
@electron/windows-sign for sub-option descriptions and
their defaults.
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.
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.
When the value is a string, specifies the filename of a plist file. Its contents are merged
into all the Helper apps' Info.plist files.
When the value is an Object, it specifies an already-parsed plist data structure that is
merged into all the Helper apps' Info.plist files.
Entries from extendHelperInfo override entries in the helper apps' Info.plist file supplied by
electron or electron-nightly, but are overridden by other
options such as appVersion or appBundleId.
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 or electron-nightly, but are overridden by other
options such as appVersion or appBundleId.
The bundle identifier to use in the application helper's Info.plist.
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.
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.binaries (arrayThe URL protocol schemes associated with the Electron app.
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 CatalinaMicrophone - required for media access API usage in macOS CatalinaValid 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'
}
}
Options passed to the
packager()function.