2017-08-08 17:18:22 +00:00
# Installation
> Tips for installing Electron
To install prebuilt Electron binaries, use [`npm` ](https://docs.npmjs.com/ ).
The preferred method is to install Electron as a development dependency in your
app:
```sh
2017-10-04 19:41:12 +00:00
npm install electron --save-dev
2017-08-08 17:18:22 +00:00
```
2018-01-19 21:33:36 +00:00
See the
2017-12-06 23:00:11 +00:00
[Electron versioning doc ](electron-versioning.md )
2017-08-08 17:18:22 +00:00
for info on how to manage Electron versions in your apps.
## Global Installation
You can also install the `electron` command globally in your `$PATH` :
```sh
npm install electron -g
```
## Customization
If you want to change the architecture that is downloaded (e.g., `ia32` on an
`x64` machine), you can use the `--arch` flag with npm install or set the
`npm_config_arch` environment variable:
```shell
npm install --arch=ia32 electron
```
2018-01-19 21:33:36 +00:00
In addition to changing the architecture, you can also specify the platform
2017-08-08 22:22:52 +00:00
(e.g., `win32` , `linux` , etc.) using the `--platform` flag:
```shell
npm install --platform=win32 electron
```
2017-08-08 17:18:22 +00:00
## Proxies
If you need to use an HTTP proxy you can [set these environment variables ](https://github.com/request/request/tree/f0c4ec061141051988d1216c24936ad2e7d5c45d#controlling-proxy-behaviour-using-environment-variables ).
2018-01-19 21:33:36 +00:00
## Custom Mirrors and Caches
During installation, the `electron` module will call out to [`electron-download` ](https://github.com/electron-userland/electron-download ) to download prebuilt
binaries of Electron for your platform. It will do so by contacting GitHub's
release download page (`https://github.com/electron/electron/releases/tag/v$VERSION`,
where `$VERSION` is the exact version of Electron).
If you are unable to access GitHub or you need to provide a custom build, you
can do so by either providing a mirror or an existing cache directory.
#### Mirror
You can use environment variables to override the base URL, the path at which to
look for Electron binaries, and the binary filename. The url used by `electron-download`
is composed as follows:
```txt
url = ELECTRON_MIRROR + ELECTRON_CUSTOM_DIR + '/' + ELECTRON_CUSTOM_FILENAME
```
For instance, to use the China mirror:
```txt
ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"
```
#### Cache
Alternatively, you can override the local cache. `electron-download` will cache
downloaded binaries in a local directory to not stress your network. You can use
that cache folder to provide custom builds of Electron or to avoid making contact
with the network at all.
* Linux: `$XDG_CACHE_HOME` or `~/.cache/electron/`
* MacOS: `~/Library/Caches/electron/`
* Windows: `$LOCALAPPDATA/electron/Cache` or `~/AppData/Local/electron/Cache/`
On environments that have been using older versions of Electron, you might find the
cache also in `~/.electron` .
You can also override the local cache location by providing a `ELECTRON_CACHE`
environment variable.
The cache contains the version's official zip file as well as a checksum, stored as
a text file. A typical cache might look like this:
```sh
├── electron-v1.7.9-darwin-x64.zip
├── electron-v1.8.1-darwin-x64.zip
├── electron-v1.8.2-beta.1-darwin-x64.zip
├── electron-v1.8.2-beta.2-darwin-x64.zip
├── electron-v1.8.2-beta.3-darwin-x64.zip
├── SHASUMS256.txt-1.7.9
├── SHASUMS256.txt-1.8.1
├── SHASUMS256.txt-1.8.2-beta.1
├── SHASUMS256.txt-1.8.2-beta.2
├── SHASUMS256.txt-1.8.2-beta.3
```
2017-08-08 17:18:22 +00:00
## Troubleshooting
2018-01-19 21:33:36 +00:00
When running `npm install electron` , some users occasionally encounter
2017-08-08 17:18:22 +00:00
installation errors.
2018-01-19 21:33:36 +00:00
In almost all cases, these errors are the result of network problems and not
actual issues with the `electron` npm package. Errors like `ELIFECYCLE` ,
`EAI_AGAIN` , `ECONNRESET` , and `ETIMEDOUT` are all indications of such
network problems. The best resolution is to try switching networks, or
2017-08-08 17:18:22 +00:00
just wait a bit and try installing again.
2018-01-19 21:33:36 +00:00
You can also attempt to download Electron directly from
[electron/electron/releases ](https://github.com/electron/electron/releases )
2017-08-08 17:18:22 +00:00
if installing via `npm` is failing.
2018-01-19 21:33:36 +00:00
If installation fails with an `EACCESS` error you may need to
2017-08-09 03:43:57 +00:00
[fix your npm permissions ](https://docs.npmjs.com/getting-started/fixing-npm-permissions ).
2017-08-08 22:22:52 +00:00
If the above error persists, the [unsafe-perm ](https://docs.npmjs.com/misc/config#unsafe-perm ) flag may need to be set to true:
```sh
sudo npm install electron --unsafe-perm=true
```
On slower networks, it may be advisable to use the `--verbose` flag in order to show download progress:
```sh
npm install --verbose electron
```
2017-08-08 17:18:22 +00:00
If you need to force a re-download of the asset and the SHASUM file set the
2017-12-05 22:13:56 +00:00
`force_no_cache` enviroment variable to `true` .