Package your Electron app into OS-specific bundles (
Electron Packager is a command line tool that packages electron app source code into executables like
.exe along with a copy of Electron.
This module was developed as part of Dat, a grant funded non-profit open source project. It is maintained by volunteers. If you are benefitting from this module please consider making contributions back.
Note that packaged Electron applications can be relatively large. A zipped barebones OS X Electron application is around 40MB.
# for use in npm scriptsnpm install electron-packager --save-dev# for use from clinpm install electron-packager -g
From the Command Line
Running electron-packager from the command line has this basic form:
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> --version=<Electron version> [optional flags...]
- Find or download the correct release of Electron
- Use that version of Electron to create a app in
<out>/<appname>-<platform>-<arch>(this can be customized via an optional flag)
For details on the optional flags, run
electron-packager --help or see usage.txt.
You should be able to launch the app on the platform you built for. If not, check your settings and try again.
Be careful not to include
node_modules you don't want into your final app.
.git will be ignored by default. You can use
--ignore to ignore files and folders via a regular expression. For example,
Given the app
FooBar with the following file structure:
foobar ├─package.json └┬src ├─index.html ├─script.js └─style.css
When one runs the following command for the first time in the
electron-packager . FooBar --platform=darwin --arch=x64 --version=0.28.2
electron-packager will do the following:
- downloads Electron 0.28.2 for OS X on x64 (and caches the download in
- builds the OS X
outdirectory was not specified)
The file structure now looks like:
foobar ├┬FooBar-darwin-x64 │├┬FooBar.app ││└[…Mac app contents…] │├─LICENSE │└─version ├─package.json └┬src ├─index.html ├─script.js └─style.css
FooBar.app folder generated can be executed by a system running OS X, which will start the packaged Electron app.
var packager =
dir - String
The source directory.
name - String
The application name.
platform - String
Allowed values: linux, win32, darwin, all
Not required if
all is used.
Arbitrary combinations of individual platforms are also supported via a comma-delimited string or array of strings.
all values correspond to the platform names used by Electron releases.
arch - String
Allowed values: ia32, x64, all
Not required if
all is used.
all values correspond to the architecture names used by Electron releases.
version - String
all - Boolean
true, sets both
app-bundle-id - String
app-category-type - String
The application category type, as shown in the Finder via View -> Arrange by Application Category when viewing the Applications directory (OS X only).
app-category-type=public.app-category.developer-tools will set the application category to Developer Tools.
Valid values are listed in Apple's documentation.
app-version - String
asar - Boolean
asar-unpack - String
asar-unpack-dir - String
Unpacks the dir to app.asar.unpacked directory whose names exactly match this string. The
asar-unpack-dir is relative to
asar-unpack-dir=sub_dir will unpack the directory
build-version - String
cache - String
helper-bundle-id - String
icon - String
Currently you must look for conversion tools in order to supply an icon in the format required by the platform:
- OS X:
.ico(See below for details on non-Windows platforms)
- Linux: this option is not required, as the dock/window list icon is set via the icon option in the BrowserWindow contructor. 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.
ignore - RegExp
out - String
overwrite - Boolean
prune - Boolean
sign - String
strict-ssl - Boolean
Whether SSL certificates are required to be valid when downloading Electron. Defaults to true.
version-string - Object
Object hash of application metadata to embed into the executable (Windows only):
err - Error
Contains errors, if any.
appPath - String
Path to the newly created application.
Building Windows apps from non-Windows platforms
Building an Electron app for the Windows platform with a custom icon requires editing the
Electron.exe file. Currently, electron-packager uses node-rcedit to accomplish this. A Windows executable is bundled in that node package and needs to be run in order for this functionality to work, so on non-Windows platforms, Wine needs to be installed. On OS X, it is installable via Homebrew.