/electron-react-typescript

Electron boilerplate with React, Redux, and TypeScript

Primary LanguageTypeScriptMIT LicenseMIT

electron-react-typescript

A Boilerplate for an Easy Start with TypeScript, React, and Electron.

React Webpack TypeScript Electron Redux Jest

Electron application boilerplate based on React, Redux, and Webpack for rapid application development using TypeScript.

Install

Clone the repository with Git:

git clone --depth=1 git@github.com:Robinfr/electron-react-typescript.git <your-project-name>

And then install the dependencies:

cd <your-project-name>
npm install

Usage

Both processes have to be started simultaneously in different console tabs:

npm run start-renderer-dev
npm run start-main-dev

This will start the application with hot-reload so you can instantly start developing your application.

You can also run do the following to start both in a single process:

npm run start-dev

Packaging

We use Electron builder to build and package the application. By default you can run the following to package for your current platform:

npm run dist

This will create a installer for your platform in the releases folder.

You can make builds for specific platforms (or multiple platforms) by using the options found here. E.g. building for all platforms (Windows, Mac, Linux):

npm run dist -- -mwl

Husky and Prettier

This project comes with both Husky and Prettier setup to ensure a consistent code style.

To change the code style, you can change the configuration in .prettierrc.

In case you want to get rid of this, you can removing the following from package.json:

  1. Remove precommit from the scripts section
  2. Remove the lint-staged section
  3. Remove lint-staged, prettier, tslint-config-prettier, and husky from the devDependencies

Also remove tslint-config-prettier from the extends section in tslint.json.

About this project

This project was set up from scratch but is heavily influenced by the Electron React Boilerplate project and React Redux TypeScript guide.

License

MIT © R. Franken