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:
ia32
x64
armv7l
arm64
(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_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.
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/.bin
node_modules/electron
node_modules/electron-nightly
.git
.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.
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)linux
mas
(macOS, specifically for submitting to the Mac App Store)win32
The 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.