Skip to content

electron-userland/electron-installer-dmg

Repository files navigation

electron-installer-dmg

CI status npm Code coverage

Create DMG installers for your electron apps using appdmg.

Requirements

This module requires using macOS and Node 16 or above.

Installation

For use in npm scripts:

npm i electron-installer-dmg --save-dev

For use from cli:

npm i electron-installer-dmg -g

Usage

Usage: electron-installer-dmg <path/to/.app> <appname>

Create DMG installers for your electron apps.

Usage:
  electron-installer-dmg ./FooBar-darwin-x64/FooBar.app FooBar

Options:
  --out=<path>         The directory to put the DMG into. [Default: `process.cwd()`].
  --icon=<path>        Path to the icon file that will be the app icon in the DMG window.
  --icon-size=<px>     How big to make the icon for the app in the DMG. [Default: `80`].
  --background=<path>  Path to a PNG image to use as the background of the DMG. [Size: 658 x 498]
  --title=<string>     The title of the produced DMG, which will be shown when mounted.
  --overwrite          Overwrite any existing DMG.
  -h --help            Show this screen.
  --version            Show version.

API

const { createDMG } = require('electron-installer-dmg');

async function buildDMG() {
  await createDMG({
    appPath: '/path/to/app.app',
    name: 'MyApp'
  });
}

createDMG(opts)

opts

appPath - String - Required The .app directory generated by electron-packager.

name - String - Required The application name.

title - String The title of the produced DMG, which will be shown when mounted.

background - String Path to the background for the DMG window. Background image should be of size 658 × 498.

icon - String Path to the icon to use for the app in the DMG window.

iconSize - Number How big to make the icon for the app in the DMG. [Default: 80].

overwrite - Boolean Overwrite an existing DMG file if if already exists.

out - String The directory to put the DMG into. [Default: process.cwd()].

contents - Array or Function that returns an Array of objects. The content that will appear in the window when user opens the .dmg file. [Default: Array of two icons, application and application destination folder]. Array example:

[ { x: 448, y: 344, type: 'link', path: '/Applications'},
  { x: 192, y: 344, type: 'file', path: '/path/to/application.app'} ]

Function example (more flexible for getting useful options used in creating a DMG):

function (opts) {
   return [ { x: 448, y: 344, type: 'link', path: '/Applications'},
            { x: 192, y: 344, type: 'file', path: opts.appPath} ];
}

format - String Disk image format. [Default: UDZO].

Must be one of the following:

  • UDRW ➡️ read/write image
  • UDRO ➡️ read-only image
  • UDCO ➡️ ADC-compressed image
  • UDZO ➡️ zlib-compressed image
  • UDBZ ➡️ bzip2-compressed image
  • ULFO ➡️ lzfse-compressed image (macOS 10.11+ only)

additionalDMGOptions - Object Additional options to pass through to appdmg

You can use this to set additional features like background-color and code-sign. See the docs of the appdmg module for all possible options.

License

Apache 2.0