oil-money-kiosk v1.0.4
Electron React Webpack Typescript (Custom Titlebar)
A minimal secure boilerplate for writing Desktop Applications using Electron, React, Webpack & TypeScript with Custom Titlebar.
Special thanks to @guasam for Custom Window Titlebar and Menus modules.
ย Want to use ViteJS instead of Webpack?
Introducing the ElectroVite project with a brief description below.
A prebuilt project for creating desktop apps using Electron, React, ViteJS with blazing fast hot-reload, easy to use custom import aliases & executable builds for distribution.
Custom Electron Window Titlebar & Menus etc.
This project includes electron-window for creating custom window components.
Following are the list of features it provides :
- Custom Titlebar for Electron Window.
 - Easily changable platform specific controls for max/min/close buttons using 
windowsormacvalue forplatformproperty with<WindowFrame>in renderer. - Titlebar menus can show/hide by pressing 
altoroptionkey. - Window frame 
titleprop displays in titlebar center when menus are toggeled off. - Menu entries can be customized in 
misc/window/titlebarMenus.tsfile. - Menu items and windows controls layout or colors can be customized easily by modifying the 
misc/windowmodules. 
Core Features
- ๐ Electron
 - ๐ TypeScript
 - โ๏ธ React
 - ๐ฅ SASS/SCSS Loader
 - ๐ถ LESS Loader (optional)
 - ๐จ CSS Loader
 - ๐ธ Image Loader
 - ๐ Font Loader
 - ๐งน ESLint
 - ๐ฆ Electron Forge
 - ๐ Custom Window Frame
 - ๐ Custom Window Titlebar
 - ๐ Custom Window Menubar
 - ๐ฑ Webpack & Configuration
 - ๐งฉ Aliases for Project Paths
 - ๐ฅ React Fast Refresh + Webpack HMR
 - ๐ Dark Mode + Light Mode (Theme)
 - ๐ Package Bundling (Distribution / Release)
 
Custom Aliases for Paths
We can use predefined aliases for import paths already used in this project. Following are the details:
| Alias | Target Path | 
|---|---|
@assets | /assets | 
@main | /src/main | 
@renderer | /src/renderer | 
@common | /src/common | 
@misc | /misc | 
@src | /src | 
@components | /src/renderer/components | 
Installation
Main version of this project contains files structure in separate context for main and renderer, with custom electron window, titlebar etc.
git clone https://github.com/codesbiome/electron-react-webpack-typescript-2023Minimal version of ERWT contains very simple project files structure, no custom window, no custom titlebar & menus.
git clone -b minimal https://github.com/codesbiome/electron-react-webpack-typescript-2023Install dependencies using pnpm or yarn or npm :
# using pnpm
pnpm install
# or using yarn
yarn install
# or using npm
npm installStart : Development
To develop and run your application, you need to run following command. Start electron application for development :
yarn startLint : Development
To lint application source code using ESLint via this command :
yarn lintPackage : Production
Customize and package your Electron app with OS-specific bundles (.app, .exe etc)
yarn packageMake : Production
Making is a way of taking your packaged application and making platform specific distributables like DMG, EXE, or Flatpak files (amongst others).
yarn makePublish : Production
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 publishPackager & Makers Configuration
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.jsFor further information, you can visit Electron Forge Configuration