Enable apps to automatically update themselves.
Process: Main
You can find a detailed guide about how to implement updates into your application here.
Currently, only macOS and Windows are supported. There is no built-in support for auto-updater on Linux, so it is recommended to use the distribution's package manager to update your app.
In addition, there are some subtle differences on each platform:
On macOS, the autoUpdater module is built upon Squirrel.Mac,
  meaning you don't need any special setup to make it work. For server-side
  requirements, you can read Server Support. Note that App
  Transport Security (ATS) applies to all requests made as part of the
  update process. Apps that need to disable ATS can add the
  NSAllowsArbitraryLoads key to their app's plist.
Note: Your application must be signed for automatic updates on macOS.
  This is a requirement of Squirrel.Mac.
On Windows, you have to install your app into a user's machine before you can
  use the autoUpdater, so it is recommended that you use the
  electron-winstaller, electron-forge or the grunt-electron-installer package to generate a Windows installer.
When using electron-winstaller or electron-forge make sure you do not try to update your app the first time it runs (Also see this issue for more info). It's also recommended to use electron-squirrel-startup to get desktop shortcuts for your app.
The installer generated with Squirrel will create a shortcut icon with an
  Application User Model ID in the format of
  com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE, examples are
  com.squirrel.slack.Slack and com.squirrel.code.Code. You have to use the
  same ID for your app with app.setAppUserModelId API, otherwise Windows will
  not be able to pin your app properly in task bar.
Unlike Squirrel.Mac, Windows can host updates on S3 or any other static file host. You can read the documents of Squirrel.Windows to get more details about how Squirrel.Windows works.
The autoUpdater object emits the following events:
Emitted when checking if an update has started.
Emitted when there is an available update. The update is downloaded automatically.
Emitted when there is no available update.
Returns:
event EventreleaseNotes StringreleaseName StringreleaseDate DateupdateURL StringEmitted when an update has been downloaded.
On Windows only releaseName is available.
The autoUpdater object has the following methods:
autoUpdater.setFeedURL(options)options Object
url Stringheaders Object (optional) macOS - HTTP request headers.serverType String (optional) macOS - Either json or default, see the Squirrel.Mac
  README for more information.Sets the url and initialize the auto updater.
autoUpdater.getFeedURL()Returns String - The current update feed URL.
autoUpdater.checkForUpdates()Asks the server whether there is an update. You must call setFeedURL before
  using this API.
autoUpdater.quitAndInstall()Restarts the app and installs the update after it has been downloaded. It
  should only be called after update-downloaded has been emitted.
Under the hood calling autoUpdater.quitAndInstall() will close all application
  windows first, and automatically call app.quit() after all windows have been
  closed.
Note: If the application is quit without calling this API after the
  update-downloaded event has been emitted, the application will still be
  replaced by the updated one on the next run.