Distributing an Electron application for Linux that reached the widest possible audience was historically difficult. How applications are packaged and delivered varies from distribution to distribution. There was no built-in mechanism for notifying users of available updates.
Snaps address these issues and enable you to produce a Linux version of your app with minimal changes to your package.json.
What benefits do snaps bring to Electron apps?
Snaps are easy to discover and install. Millions of users can browse and install snaps graphically in the Snap Store or from the command-line.
Snaps install and run the same across Linux. They bundle Electron and all of your app’s dependencies, be they Node modules or system libraries.
Snaps automatically update to the latest version. Four times a day, users’ systems will check for new versions and upgrade in the background.
Upgrades are not disruptive. Because upgrades are not in-place, users can keep your app open as it’s upgraded in the background.
Upgrades are safe. If your app fails to upgrade, users automatically roll back to the previous revision.
Do you have five minutes to get started?
Ready to get started? By the end of this guide you’ll understand how to make a snap of your Electron app that can be published in the Snap Store, showcasing it to millions of Linux users.
# Clone this repository
git clone https://github.com/electron/electron-quick-start
# Go into the repository
# Install dependencies
# Run the app
In the example above, the electron-builder tool extends the pre-existing package.json file to produce Linux, macOS and Windows builds of the quick-start app.
The package.json file can be easily extended to automatically create a Linux snap alongside the other builds. For example, adding the following scripts and devDependencies snippets to the package.json in the Electron quick-start example is all that’s needed to generate a Linux snap:
As illustrated above, electron-builder has been added to scripts and devDependencies of this project. As well as being added manually, the devDependencies requirement can be added with the following command:
npm install --save-dev electron-builder
The script snippet named dist calls the build command from electron-builder and instructs it to build a Linux snap.