|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- # @electron/get
-
- > Download Electron release artifacts
-
- [![CircleCI](https://circleci.com/gh/electron/get.svg?style=svg)](https://circleci.com/gh/electron/get)
-
- ## Usage
-
- ### Simple: Downloading an Electron Binary ZIP
-
- ```typescript
- 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');
- ```
-
- ### Advanced: Downloading a macOS Electron Symbol File
-
-
- ```typescript
- 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',
- });
- ```
-
- ### Specifying a mirror
-
- To specify another location to download Electron assets from, the following options are
- available:
-
- * `mirrorOptions` Object
- * `mirror` String (optional) - The base URL of the mirror to download from.
- * `nightlyMirror` String (optional) - The Electron nightly-specific mirror URL.
- * `customDir` String (optional) - The name of the directory to download from, often scoped by version number.
- * `customFilename` String (optional) - The name of the asset to download.
- * `resolveAssetURL` Function (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:
-
- ```typescript
- 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.zip
- ```
-
- `customDir` can have the placeholder `{{ version }}`, which will be replaced by the version
- specified (without the leading `v`). For example:
-
- ```javascript
- 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.zip
- ```
-
- #### Using environment variables for mirror options
- Mirror 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.
-
- ### Overriding the version downloaded
-
- 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`.
-
- ## How It Works
-
- 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_HOME` or `~/.cache/electron/`
- * MacOS: `~/Library/Caches/electron/`
- * Windows: `%LOCALAPPDATA%/electron/Cache` or `~/AppData/Local/electron/Cache/`
-
- By default, the module uses [`got`](https://github.com/sindresorhus/got) as the
- downloader. As a result, you can use the same [options](https://github.com/sindresorhus/got#options)
- via `downloadOptions`.
-
- ### Progress Bar
-
- 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 has the same function signature as `got`'s
- [`downloadProgress` event callback](https://github.com/sindresorhus/got#ondownloadprogress-progress).
-
- ### Proxies
-
- 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. A different
- proxy module is used, depending on the version of Node in use, and as such, there are slightly
- different ways to set the proxy environment variables. For Node 10 and above,
- [`global-agent`](https://github.com/gajus/global-agent#environment-variables) is used. Otherwise,
- [`global-tunnel-ng`](https://github.com/np-maintain/global-tunnel#auto-config) is used. Refer to the
- appropriate linked module to determine how to configure proxy support.
|