A minimal boilerplate for writing Desktop Applications using Electron, React, Webpack & JavaScript.
This project makes use of latest packages and configurations to serve the best environment for development.
If you're looking for a boilerplate with Typescript support, find it here :
ERWT - Typescript Boilerplate
This project now includes custom Electron Window (JS), Titlebar, Menu Items, Window Controls & application icon etc by default. Menu items and windows controls layout or colors can be customized easily by modifying the misc/window
modules. The windows
platform buttons are being used by default in the Titlebar.
Menubar can be toggled by pressing ALT
key
- 📐 Custom Window & Titlebar with Menus
- 🌟 Electron
- 🌀 JavaScript
- ⚛️ React
- 🛶 LESS Loader
- 🎨 CSS Loader
- 📸 Image Loader
- 🆎 Font Loader
- 🧹 ESLint
- 📦 Electron Forge
- 🔱 Webpack & Configuration
- 🧩 Aliases for project paths
- 🔥 Hot Module Replacement (Live Reload)
- 🎁 Package Bundling (Distribution / Release)
To clone the boilerplate, you need to run following commands:
git clone --recurse-submodules https://github.com/codesbiome/electron-react-webpack-boilerplate
Install dependencies using Yarn or NPM :
yarn install
To develop and run your application, you need to run following command.
Start electron application for development :
yarn start
To lint application source code using ESLint via this command :
yarn lint
Customize and package your Electron app with OS-specific bundles (.app, .exe etc)
yarn package
Making is a way of taking your packaged application and making platform specific distributables like DMG, EXE, or Flatpak files (amongst others).
yarn make
Publishing is a way of taking the artifacts generated by the make
command and sending them to a service somewhere for you to distribute or use as updates. (This could be your update server or an S3 bucket)
yarn publish
This provides an easy way of configuring your packaged application and making platform specific distributables like DMG, EXE, or Flatpak files.
This configurations file is available in :
tools/forge/forge.config.js
For further information, you can visit Electron Forge Configuration