Simple way to enable update for the electron application
npm install electron-simple-updater!logo
This module allows to automatically update your application. You only
need to install this module and write two lines of code! To publish
your updates you just need a simple file hosting, it does not require
a dedicated server.
Supported OS:
- Mac, (Squirrel.Mac)
- Windows (Squirrel.Windows)
- Linux (for AppImage format)
* Actually, autoUpdater is used inside.
* Linux support.
* It handles Squirrel.Windows install/update command line arguments.
* It doesn't require a dedicated release server.
* You need only 2 lines of code to make it work.
Install with npm:
npm install --save electron-simple-updater
``js`
// Just place this code at the entry point of your application:
const updater = require('src/index');
updater.init('https://raw.githubusercontent.com/megahertz/electron-simple-updater/master/example/updates.json');
You can set this link in package.json:updater.url instead of init() argument.
2. Build your release using electron-builder or another tool.
Note: Your application must be signed for automatic updates on macOS.
This is a requirement of Squirrel.Mac.
3. Upload your release with update.json to a hosting. You can
do it manually or use
electron-simple-publisher
to simplify this process. Note: Squirrel.Mac requires a properly prepared
release.json file. A release in the property url` must be zipped .app file.
4. That's it!
Now your application will check for updates on start and download it
automatically if an update is available. After app is restarted a new
version will be loaded. But you can customize it to ask a user if he
would like to install updates. See the example for details.
Name | Default | Description
--------------------|-------------------------|------------
autoDownload | true | Automatically download an update when it's found in updates.json
channel | 'prod' | An application which is built for channel like 'beta' will receive updates only from this channel
checkUpdateOnStart | true | Check for updates immediately when init() is called
disabled | false | Disable update feature. This option is set to true automatically for applications built for Mac App Store or Windows Store
logger | console | You can pass electron-log, winston or another logger with the following interface: { debug(), info(), warn() }. Set it to false if you would like to disable a logging feature
version | app.getVersion() | Current app version. In most cases, you should not pass this options manually, it is read by electron from version at package.json
url* | undefined | The only required parameter. This is a URL to updates.json file. You can use templates '{platform}', '{arch}' and '{channel}' in a file name.
#### setFeedURL(url) deprecated
Sets the url and initialize the electron-simple-updater. Instead of
built-in auto-updater init(), this method receives a URL to updates.json.
#### getFeedURL() deprecated
Return the current updates.json URL.
#### checkForUpdates()
Asks the server whether there is an update. url must be set before this
call. Instead of built-in auto-updater, this method does not start
downloading if autoDownload options is set to false.
#### downloadUpdate()
Start downloading update manually. You can use this method if
autoDownload option is set to false
#### quitAndInstall()
Restarts the app and installs the update after it has been downloaded.
It should only be called after update-downloaded has been emitted.
#### setOptions(name, value)
Set one or a few options. Pass an object as the name for multiple set.
* build
* channel
* version
* buildId - this string contains a build, a channel and version
#### checking-for-update
Emitted when start downloading update.json file.
#### update-available(meta)
Emitted when there is an available update.
#### update-not-available
Emitted when there is no available update.
#### update-downloading(meta)
Emitted when star downloading an update.
#### update-downloaded(meta)
Emitted when an update has been downloaded.
#### squirrel-win-installer(event)
Emitted when the app is run by Squirrel.Windows when installing. The
SimpleUpdater creates/removes shortcuts and finishes the process by
default.
* event.preventDefault - set to true if you would like to
customize this action
* event.squirrelAction - squirrel-install, squirrel-updated,
squirrel-uninstall, squirrel-obsolete
Licensed under MIT.
Logo was designed by prolko base on the
original electron logo.