UNPKG

electron-packager

Version:

Package and distribute your Electron app with OS-specific bundles (.app, .exe etc) via JS or CLI

245 lines (137 loc) 8.48 kB
# electron-packager API Short example: ```javascript var packager = require('electron-packager') packager(options, function done_callback (err, appPaths) { /* … */ }) ``` ## `options` ### Required #### `arch` *String* Allowed values: `ia32`, `x64`, `all` The target system architecture(s) to build for. Not required if the [`all`](#all) option is set. If `arch` is set to `all`, all supported architectures for the target platforms specified by [`platform`](#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]. #### `dir` *String* The source directory. #### `platform` *String* Allowed values: `linux`, `win32`, `darwin`, `mas`, `all` The target platform(s) to build for. Not required if the [`all`](#all) option is set. If `platform` is set to `all`, all [supported target platforms](#supported-platforms) for the target architectures specified by [`arch`](#arch) will be built. Arbitrary combinations of individual platforms are also supported via a comma-delimited string or array of strings. The non-`all` values correspond to the platform names used by [Electron releases]. ### Optional #### All Platforms ##### `all` *Boolean* When `true`, sets both [`arch`](#arch) and [`platform`](#platform) to `all`. ##### `app-copyright` *String* The human-readable copyright line for the app. Maps to the `LegalCopyright` metadata property on Windows, and `NSHumanReadableCopyright` on OS X. ##### `app-version` *String* The release version of the application. Maps to the `ProductVersion` metadata property on Windows, and `CFBundleShortVersionString` on OS X. ##### `asar` *Boolean* (default: `false`) Whether to package the application's source code into an archive, using [Electron's archive format](https://github.com/electron/asar). Reasons why you may want to enable this feature are described in [an application packaging tutorial in Electron's documentation](http://electron.atom.io/docs/v0.36.0/tutorial/application-packaging/). ##### `asar-unpack` *String* A [glob expression](https://github.com/isaacs/minimatch#features), when specified, unpacks the file with matching names to the `app.asar.unpacked` directory. ##### `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 `dir`. For example, `asar-unpack-dir=sub_dir` will unpack the directory `/<dir>/sub_dir`. ##### `build-version` *String* The build version of the application. Maps to the `FileVersion` metadata property on Windows, and `CFBundleVersion` on OS X. ##### `cache` *String* (default: `$HOME/.electron`) (**deprecated** and will be removed in a future major version, please use the [`download.cache`](#download) parameter instead) The directory where prebuilt, pre-packaged Electron downloads are cached. ##### `download` *Object* If present, passes custom options to [`electron-download`](https://www.npmjs.com/package/electron-download) (see the link for more detailed option descriptions and the defaults). Supported parameters include, but are not limited to: - `cache` (*String*): The directory where prebuilt, pre-packaged Electron downloads are cached. - `mirror` (*String*): The URL to override the default Electron download location. - `strictSSL` (*Boolean* - default: `true`): Whether SSL certificates are required to be valid when downloading Electron. ##### `icon` *String* Currently you must look for conversion tools in order to supply an icon in the format required by the platform: - OS X: `.icns` - Windows: `.ico` ([See the readme](https://github.com/electron-userland/electron-packager#building-windows-apps-from-non-windows-platforms) 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 constructor](http://electron.atom.io/docs/v0.30.0/api/browser-window/#new-browserwindow-options). 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`](#platform) is in effect. ##### `ignore` *RegExp* or *Function* A pattern which specifies which files to ignore when copying files to create the package(s). The [`out`](#out) directory is ignored by default, along with the `electron-prebuilt` and `electron-packager` Node modules, the `.git` directory, and `node_modules/.bin`. Alternatively, this can be a predicate function that, given the file path, returns true if the file should be ignored or false if the file should be kept. ##### `name` *String* The application name. If omitted, it will use the `productName` or `name` value of the nearest `package.json`. ##### `out` *String* (default: current working directory) The base directory where the finished package(s) are created. ##### `overwrite` *Boolean* (default: `false`) Whether to replace an already existing output directory for a given platform (`true`) or skip recreating it (`false`). ##### `prune` *Boolean* Runs [`npm prune --production`](https://docs.npmjs.com/cli/prune) before starting to package the app. ##### `strict-ssl` *Boolean* (**default: `true`**) (**deprecated** and will be removed in a future major version, please use the [`download.strictSSL`](#download) parameter instead) Whether SSL certificates are required to be valid when downloading Electron. ##### `tmpdir` *String* or *`false`* (default: system temp directory) The base directory to use as a temp directory. Set to `false` to disable use of a temporary directory. ##### `version` *String* The Electron version with which the app is built (without the leading 'v') - for example, [`0.33.9`](https://github.com/electron/electron/releases/tag/v0.33.9). See [Electron releases] for valid versions. If omitted, it will use the version of the nearest local installation of electron-prebuilt. #### OS X/Mac App Store targets only ##### `app-bundle-id` *String* The bundle identifier to use in the application's plist. ##### `app-category-type` *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](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8). ##### `extend-info` *String* Filename of a plist file; the contents are added to the app's plist. Entries in `extend-info` override entries in the base plist file supplied by `electron-prebuilt`, but are overridden by other explicit arguments such as [`app-version`](#app-version) or [`app-bundle-id`](#app-bundle-id). ##### `extra-resource` *String* or *Array* Filename of a file to be copied directly into the app's `Contents/Resources` directory. ##### `helper-bundle-id` *String* The bundle identifier to use in the application helper's plist. ##### `osx-sign` *Object* or *`true`* If present, signs OS X target apps when the host platform is OS X and XCode is installed. When the value is `true`, pass default configuration to the signing module. The configuration values listed below can be customized when the value is an `Object`. See [electron-osx-sign](https://www.npmjs.com/package/electron-osx-sign#opts) for more detailed option descriptions and the defaults. - `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. #### Windows targets only ##### `version-string` *Object* Object (also known as a "hash") of application metadata to embed into the executable: - `CompanyName` - `FileDescription` - `OriginalFilename` - `ProductName` - `InternalName` ## callback ### `err` *Error* (or *Array*, in the case of an `copy` error) Contains errors, if any. ### `appPaths` *Array* of *String*s Paths to the newly created application bundles. [Electron releases]: https://github.com/electron/electron/releases