Download Electron release artifacts
For full API details, see the API documentation.
import { download } from '@electron/get';
// NB: Use this syntax within an async function, Node does not have support for
// top-level await as of Node 12.
const zipFilePath = await download('4.0.4');import { downloadArtifact } from '@electron/get';
// NB: Use this syntax within an async function, Node does not have support for
// top-level await as of Node 12.
const zipFilePath = await downloadArtifact({
version: '4.0.4',
platform: 'darwin',
artifactName: 'electron',
artifactSuffix: 'symbols',
arch: 'x64',
});To specify another location to download Electron assets from, the following options are available:
mirrorOptionsObjectmirrorString (optional) - The base URL of the mirror to download from.nightlyMirrorString (optional) - The Electron nightly-specific mirror URL.customDirString (optional) - The name of the directory to download from, often scoped by version number.customFilenameString (optional) - The name of the asset to download.resolveAssetURLFunction (optional) - A function allowing customization of the url used to download the asset.
Anatomy of a download URL, in terms of mirrorOptions:
https://github.com/electron/electron/releases/download/v4.0.4/electron-v4.0.4-linux-x64.zip
| | | |
------------------------------------------------------- -----------------------------
| |
mirror / nightlyMirror | | customFilename
------
||
customDir
Example:
import { download } from '@electron/get';
const zipFilePath = await download('4.0.4', {
mirrorOptions: {
mirror: 'https://mirror.example.com/electron/',
customDir: 'custom',
customFilename: 'unofficial-electron-linux.zip'
}
});
// Will download from https://mirror.example.com/electron/custom/unofficial-electron-linux.zip
const nightlyZipFilePath = await download('8.0.0-nightly.20190901', {
mirrorOptions: {
nightlyMirror: 'https://nightly.example.com/',
customDir: 'nightlies',
customFilename: 'nightly-linux.zip'
}
});
// Will download from https://nightly.example.com/nightlies/nightly-linux.zipcustomDir can have the placeholder {{ version }}, which will be replaced by the version
specified (without the leading v). For example:
const zipFilePath = await download('4.0.4', {
mirrorOptions: {
mirror: 'https://mirror.example.com/electron/',
customDir: 'version-{{ version }}',
platform: 'linux',
arch: 'x64'
}
});
// Will download from https://mirror.example.com/electron/version-4.0.4/electron-v4.0.4-linux-x64.zipMirror options can also be specified via the following environment variables:
ELECTRON_CUSTOM_DIR- Specifies the custom directory to download from.ELECTRON_CUSTOM_FILENAME- Specifies the custom file name to download.ELECTRON_MIRROR- Specifies the URL of the server to download from if the version is not a nightly version.ELECTRON_NIGHTLY_MIRROR- Specifies the URL of the server to download from if the version is a nightly version.
The version downloaded can be overriden by setting the ELECTRON_CUSTOM_VERSION environment variable.
Setting this environment variable will override the version passed in to download or downloadArtifact.
This module downloads Electron to a known place on your system and caches it so that future requests for that asset can be returned instantly. The cache locations are:
- Linux:
$XDG_CACHE_HOMEor~/.cache/electron/ - MacOS:
~/Library/Caches/electron/ - Windows:
%LOCALAPPDATA%/electron/Cacheor~/AppData/Local/electron/Cache/
By default, the module uses the built-in Fetch API
as the downloader. As a result, you can pass RequestInit
options via downloadOptions.
By default, a progress bar is shown when downloading an artifact for more than 30 seconds. To
disable, set the ELECTRON_GET_NO_PROGRESS environment variable to any non-empty value, or set
quiet to true in downloadOptions. If you need to monitor progress yourself via the API, set
getProgressCallback in downloadOptions, which receives a Progress object with transferred,
total, and percent properties.
Downstream packages should utilize the initializeProxy function to add HTTP(S) proxy support. If
the environment variable ELECTRON_GET_USE_PROXY is set, it is called automatically.
debug is used to display logs and messages.
Set the DEBUG=@electron/get* environment variable to log additional
debug information from this module.