Quickly scaffold an Electron project with a full build pipeline
Overview
Electron Forge is an all-in-one tool for packaging and distributing Electron applications. It combines many single-purpose packages to create a full build pipeline that works out of the box, complete with code signing, installers, and artifact publishing. For advanced workflows, custom build logic can be added in the Forge lifecycle through itsPlugin API. Custom build and storage targets can be handled by creating your ownMakersandPublishers.
Creating a new app
To get started with Electron Forge, we first need to initialize a new project withcreate-electron-app. This script is a convenient wrapper around Forge'sInitcommand.
Electron Forge currently only supports npm and Yarn Classic. If you are using Yarn >=2, please use thenodeLinker: node-modulesinstall mode.
npminitelectron-app@latestmy-app
Using templates
Forge's initialization scripts can add additional template code with the--template=[template-name]flag.
Both of these templates are built around plugins that bundle your JavaScript code for production and includes a dev server to provide a better developer experience.
We highly recommend using these templates when initializing your app to take advantage of modern front-end JavaScript tooling.
To learn more about authoring your own templates for Electron Forge, check out theWriting Templatesguide!
Starting your app
You should now have a directory calledmy-appwith all the files you need for a basic Electron app.
cdmy-appnpmstart
Building distributables
So you've got anamazingapplication there, and you want to package it all up and share it with the world. If you run themakescript, Electron Forge will generate you platform specific distributables for you to share with everyone. For more information on what kind of distributables you can make, check out theMakersdocumentation.
npmrunmake
Publishing your app
Now you have distributables that you can share with your users. If you run thepublishscript, Electron Forge will then publish the platform-specific distributables for you, using the publishing method of your choice. For example, if you want to publish your assets to GitHub, you can install the GitHub publisher dependency using:
For more information on what publishers we currently support, check out thePublishersdocumentation.
Advanced Usage
Once you've got a basic app starting, building and publishing, it's time to add your custom configuration, which can be done in theforge.config.jsfile. Configuration options are specified in theConfiguration Docs.
You can also check out the documentation on some of our more advanced features like: