-
Notifications
You must be signed in to change notification settings - Fork 0
Options
In the development package.json custom build field can be specified to customize format:
"build": {
"dmg": {
"contents": [
{
"x": 410,
"y": 220,
"type": "link",
"path": "/Applications"
},
{
"x": 130,
"y": 220,
"type": "file",
"path": "computed path to artifact, do not specify it - will be overwritten"
}
]
}
}As you can see, you need to customize MacOS options only if you want to provide custom x, y.
Don't customize paths to background and icon, — just follow conventions.
Here documented only electron-builder specific options:
| Name | Description |
|---|---|
| name | The application name. |
| productName |
As name, but allows you to specify a product name for your executable which contains spaces and other special characters not allowed in the name property. |
| description | The application description. |
| homepage |
The url to the project homepage (NuGet Package If not specified and your project repository is public on GitHub, it will be |
| license | linux-only. The license name. |
| Name | Description |
|---|---|
| build | See .build. |
| directories | See .directories |
| Name | Description |
|---|---|
| appId |
The application id. Used as CFBundleIdentifier for MacOS and as Application User Model ID for Windows. For windows only NSIS target supports it. Squirrel.Windows is not fixed yet. Defaults to |
| app-category-type |
macOS-only. The application category type, as shown in the Finder via View -> Arrange by Application Category when viewing the Applications directory. For example, Valid values are listed in Apple’s documentation. |
| asar |
Whether to package the application’s source code into an archive, using Electron’s archive format. Defaults to Or you can pass object of any asar options. electron-builder detects node modules that must be unpacked automatically, you don’t need to explicitly set |
| productName | See AppMetadata.productName. |
| files |
A glob patterns relative to the app directory, which specifies which files to include when copying files to create the package. See File Patterns. |
| extraResources |
A glob patterns relative to the project directory, when specified, copy the file or directory with matching names directly into the app’s resources directory ( Glob rules the same as for files. |
| extraFiles |
The same as extraResources but copy into the app's content directory (Contents for MacOS, root directory for Linux/Windows). |
| mac | See .build.mac. |
| dmg | See .build.dmg. |
| mas | See .build.mas. |
| win | See .build.win. |
| nsis | See .build.nsis. |
| linux | See .build.linux. |
| compression |
The compression level, one of store, normal, maximum (default: normal). If you want to rapidly test build, store can reduce build time significantly. |
| afterPack | programmatic API only The function to be run after pack (but before pack into distributable format and sign). Promise must be returned. |
| npmRebuild |
Whether to rebuild native dependencies (npm rebuild) before starting to package the app. Defaults to true. |
| fileAssociations | File associations. (NSIS only for now). |
MacOS specific build options.
| Name | Description |
|---|---|
| target |
Target package type: list of default, dmg, mas, 7z, zip, tar.xz, tar.lz, tar.gz, tar.bz2. Defaults to default (dmg and zip for Squirrel.Mac). |
| identity |
The name of certificate to use when signing. Consider using environment variables CSC_LINK or CSC_NAME. MAS installer identity is specified in the .build.mas. |
| icon |
The path to application icon. Defaults to build/icon.icns (consider using this convention instead of complicating your configuration). |
| entitlements |
The path to entitlements file for signing the app. |
| entitlementsInherit |
The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. This option only applies when signing with |
| bundleVersion |
The CFBundleVersion. Do not use it unless you need to. |
MacOS DMG specific options.
See all appdmg options.
| Name | Description |
|---|---|
| icon |
The path to DMG icon, which will be shown when mounted. Defaults to build/icon.icns. |
| background |
The path to background (default: |
MAS (Mac Application Store) specific options (in addition to build.mac).
| Name | Description |
|---|---|
| entitlements |
The path to entitlements file for signing the app. |
| entitlementsInherit |
The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. |
Windows specific build options.
| Name | Description |
|---|---|
| target |
Target package type: list of squirrel, nsis, 7z, zip, tar.xz, tar.lz, tar.gz, tar.bz2. Defaults to squirrel. |
| iconUrl |
Squirrel.Windows-only. A URL to an ICO file to use as the application icon (displayed in Control Panel > Programs and Features). Defaults to the Electron icon. Please note — local icon file url is not accepted, must be https/http.
|
| loadingGif |
Squirrel.Windows-only. The path to a .gif file to display during install. |
| msi |
Squirrel.Windows-only. Whether to create an MSI installer. Defaults to false (MSI is not created). |
| remoteReleases |
Squirrel.Windows-only. A URL to your existing updates. Or true to automatically set to your GitHub repository. If given, these will be downloaded to create delta updates. |
| remoteToken | Squirrel.Windows-only. Authentication token for remote updates |
| signingHashAlgorithms |
Array of signing algorithms used. Defaults to ['sha1', 'sha256']
|
| icon |
The path to application icon. Defaults to build/icon.ico (consider using this convention instead of complicating your configuration). |
NSIS target support in progress — not polished and not fully tested and checked.
See NSIS target notes.
| Name | Description |
|---|---|
| oneClick |
One-click installation. Defaults to true. |
| perMachine |
Install per all users (per-machine). Defaults to false. |
| allowElevation |
boring installer only. Allow requesting for elevation. If false, user will have to restart installer with elevated permissions. Defaults to true. |
| runAfterFinish |
one-click installer only. Run application after finish. Defaults to true. |
| guid | See GUID vs Application Name. |
| installerHeader |
boring installer only. MUI_HEADERIMAGE, relative to the project directory. Defaults to build/installerHeader.bmp
|
| installerHeaderIcon |
one-click installer only. The path to header icon (above the progress bar), relative to the project directory. Defaults to build/installerHeaderIcon.ico or application icon. |
| include |
The path to NSIS include script to customize installer. Defaults to build/installer.nsh. See Custom NSIS script. |
| script |
The path to NSIS script to customize installer. Defaults to build/installer.nsi. See Custom NSIS script. |
Linux specific build options.
| Name | Description |
|---|---|
| description | As description from application package.json, but allows you to specify different for Linux. |
| target |
Target package type: list of The most effective xz compression format used by default. Only |
| synopsis | deb-only. The short description. |
| maintainer | The maintainer. Defaults to author. |
| vendor | The vendor. Defaults to author. |
| compression |
deb-only. The compression type, one of gz, bzip2, xz. Defaults to xz. |
| depends |
Package dependencies. Defaults to ["libappindicator1", "libnotify-bin"]. |
NSIS only, in progress.
| Name | Description |
|---|---|
| ext |
The extension (minus the leading period). e.g. png
|
| name |
The name. e.g. PNG
|
build.files defaults to **/* (i.e. hidden files are ignored by default).
Development dependencies are never copied in any case. You don't need to ignore it explicitly.
Multiple patterns are supported. You can use ${os} (expanded to mac, linux or win according to current platform) and ${arch} in the pattern.
If directory matched, all contents are copied. So, you can just specify foo to copy foo directory.
Remember that default pattern **/* is not added to your custom, so, you have to add it explicitly — e.g. ["**/*", "!ignoreMe${/*}"].
May be specified in the platform options (e.g. in the build.mac).
[
// match all files
"**/*",
// except for js files in the foo/ directory
"!foo/*.js",
// unless it's foo/bar.js
"foo/bar.js",
]Remember that !doNotCopyMe/**/* would match the files in the doNotCopyMe directory, but not the directory itself, so the empty directory would be created.
Solution — use macro ${/*}, e.g. !doNotCopyMe${/*}.
CFBundleVersion (MacOS) and FileVersion (Windows) will be set automatically to version.build_number on CI server (Travis, AppVeyor and CircleCI supported).