electron-vite-react

awesome-vite GitHub stars GitHub issues GitHub license Required Node.JS >= 14.18.0 || >=16.0.0

English | 简体中文

👀 Overview

📦 Ready out of the box
🎯 Based on the official template-react-ts, project structure will be familiar to you
🌱 Easily extendable and customizable
💪 Supports Node.js API in the renderer process
🔩 Supports C/C++ native addons
🐞 Debugger configuration included
🖥 Easy to implement multiple windows

🛫 Quick start

npm create electron-vite

electron-vite-react.gif

🐞 Debug

electron-vite-react-debug.gif

📂 Directory structure

Familiar React application structure, just with electron folder on the top 😉
Files in this folder will be separated from your React application and built into dist-electron

├── electron                                 Electron-related code
│   ├── main                                 Main-process source code
│   └── preload                              Preload-scripts source code
│
├── release                                  Generated after production build, contains executables
│   └── {version}
│       ├── {os}-{os_arch}                   Contains unpacked application executable
│       └── {app_name}_{version}.{ext}       Installer for the application
│
├── public                                   Static assets
└── src                                      Renderer source code, your React application

🚨 Be aware

This template integrates Node.js API to the renderer process by default. If you want to follow Electron Security Concerns you might want to disable this feature. You will have to expose needed API by yourself.

To get started, remove the option as shown below. This will modify the Vite configuration and disable this feature.

# vite.config.ts

export default {
  plugins: [
    ...
-   // Use Node.js API in the Renderer-process
-   renderer({
-     nodeIntegration: true,
-   }),
    ...
  ],
}

🔧 Additional features

  1. electron-updater 👉 see docs
  2. playwright

❔ FAQ

Prisma Guide for Production Build

  1. npx prisma generate (run only if the command is never executed)
  2. npx prisma migrate (run every time if you change anything in DB schema)
  3. npm run build