.vscode | ||
electron | ||
prisma | ||
public | ||
release/app | ||
src | ||
.editorconfig | ||
.eslintrc.json | ||
.gitignore | ||
.prettierrc | ||
electron-builder.json | ||
index.html | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
post-install.js | ||
README.md | ||
README.zh-CN.md | ||
tsconfig.json | ||
tsconfig.node.json | ||
vite.config.ts |
electron-vite-react
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
🐞 Debug
📂 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
│ └── resources Resources for the production build
│ ├── icon.icns Icon for the application on macOS
│ ├── icon.ico Icon for the application
│ ├── installerIcon.ico Icon for the application installer
│ ├── uninstallerIcon.ico Icon for the application uninstaller
| └── iconset
| └── 256x256.png Icon for the application on Linux
│
├── release Generated after production build, contains executables
│ └── {version}
│ ├── {os}-unpacked Contains unpacked application executable
│ └── Setup.{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
electron({
- renderer: {}
})
❔ FAQ
- dependencies vs devDependencies
- Using C/C++ native addons in renderer
- Node.js ESM packages (e.g.
execa
node-fetch
)