|
|
<h1 align="center">electron-app</h1>
|
|
|
|
|
|
<p align="center">An Electron application with Vue3 and TypeScript</p>
|
|
|
|
|
|
<p align="center">
|
|
|
<img src="https://img.shields.io/github/package-json/dependency-version/alex8088/electron-vite-boilerplate/dev/electron" alt="electron-version">
|
|
|
<img src="https://img.shields.io/github/package-json/dependency-version/alex8088/electron-vite-boilerplate/dev/electron-vite" alt="electron-vite-version" />
|
|
|
<img src="https://img.shields.io/github/package-json/dependency-version/alex8088/electron-vite-boilerplate/dev/electron-builder" alt="electron-builder-version" />
|
|
|
<img src="https://img.shields.io/github/package-json/dependency-version/alex8088/electron-vite-boilerplate/dev/vite" alt="vite-version" />
|
|
|
<img src="https://img.shields.io/github/package-json/dependency-version/alex8088/electron-vite-boilerplate/dev/vue" alt="vue-version" />
|
|
|
<img src="https://img.shields.io/github/package-json/dependency-version/alex8088/electron-vite-boilerplate/dev/typescript" alt="typescript-version" />
|
|
|
</p>
|
|
|
|
|
|
<p align='center'>
|
|
|
<img src='./build/electron-vite-vue-ts.png'/>
|
|
|
</p>
|
|
|
|
|
|
## Features
|
|
|
|
|
|
- 💡 Optimize asset handling
|
|
|
- 🚀 Fast HMR for renderer processes
|
|
|
- 🔥 Hot reloading for main process and preload scripts
|
|
|
- 🔌 Easy to debug
|
|
|
- 🔒 Compile to v8 bytecode to protect source code
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
Read [documentation](https://electron-vite.org/) for more details.
|
|
|
|
|
|
- [Configuring](https://electron-vite.org/config/)
|
|
|
- [Development](https://electron-vite.org/guide/dev.html)
|
|
|
- [Asset Handling](https://electron-vite.org/guide/assets.html)
|
|
|
- [HMR](https://electron-vite.org/guide/hmr.html) & [Hot Reloading](https://electron-vite.org/guide/hot-reloading.html)
|
|
|
- [Debugging](https://electron-vite.org/guide/debugging.html)
|
|
|
- [Source code protection](https://electron-vite.org/guide/source-code-protection.html)
|
|
|
- [Distribution](https://electron-vite.org/guide/distribution.html)
|
|
|
- [Troubleshooting](https://electron-vite.org/guide/troubleshooting.html)
|
|
|
|
|
|
You can also use the [create-electron](https://github.com/alex8088/quick-start/tree/master/packages/create-electron) tool to scaffold your project for other frameworks (e.g. `React`, `Svelte` or `Solid`).
|
|
|
|
|
|
## Recommended IDE Setup
|
|
|
|
|
|
- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin)
|
|
|
|
|
|
## Project Setup
|
|
|
|
|
|
### Install
|
|
|
|
|
|
```bash
|
|
|
$ npm install
|
|
|
```
|
|
|
|
|
|
### Development
|
|
|
|
|
|
```bash
|
|
|
$ npm run dev
|
|
|
```
|
|
|
|
|
|
### Build
|
|
|
|
|
|
```bash
|
|
|
# For windows
|
|
|
$ npm run build:win
|
|
|
|
|
|
# For macOS
|
|
|
$ npm run build:mac
|
|
|
|
|
|
# For Linux
|
|
|
$ npm run build:linux
|
|
|
```
|
|
|
|
|
|
|
|
|
# 项目结构 (Project Structure)
|
|
|
|
|
|
这是一个基于 Electron + Vite + TypeScript 的桌面应用程序项目结构,使用 Tailwind CSS 进行样式设计,并通过 electron-builder 进行打包分发。
|
|
|
|
|
|
## 目录结构
|
|
|
|
|
|
### 📁 `build/`
|
|
|
- **构建配置目录**
|
|
|
包含与打包相关的脚本和资源文件
|
|
|
- `icons/` - 应用程序图标集(不同尺寸)
|
|
|
- `installer.nsh` - NSIS 安装脚本配置
|
|
|
- `scripts/` - 构建相关脚本
|
|
|
|
|
|
### 📁 `node_modules/`
|
|
|
- **依赖库目录**
|
|
|
存储所有 npm/yarn 安装的第三方依赖包
|
|
|
*(此目录不应手动修改)*
|
|
|
|
|
|
### 📁 `out/`
|
|
|
- **临时输出目录**
|
|
|
存放开发/构建过程中生成的临时文件
|
|
|
- `main/` - 主进程编译输出
|
|
|
- `renderer/` - 渲染进程编译输出
|
|
|
|
|
|
### 📁 `release/`
|
|
|
- **发布目录**
|
|
|
最终生成的应用程序安装包和可执行文件
|
|
|
|
|
|
### 📁 `resources/`
|
|
|
- **资源文件目录**
|
|
|
包含应用程序使用的静态资源
|
|
|
- `icons/` - 应用程序图标资源
|
|
|
- `data/` - 其他静态数据文件
|
|
|
|
|
|
### 📁 `src/`
|
|
|
- **核心源代码目录**
|
|
|
应用程序的主要逻辑和界面代码
|
|
|
- `main/` - Electron 主进程代码
|
|
|
- `preload/` - Electron 预加载脚本
|
|
|
- `renderer/` - 渲染进程代码
|
|
|
- `src/` - Vite 应用源码
|
|
|
- `api/` - 用于与后端或外部服务进行数据交互的API请求
|
|
|
- `assets/` - 前端资源文件 (images, fonts, etc.)
|
|
|
- `components/` - UI 组件
|
|
|
- `config/` - 项目配置相关
|
|
|
- `hooks/` - 自定义 Vue Hooks
|
|
|
- `layout/` - 页面布局组件
|
|
|
- `mock/` - 模拟数据用于开发和测试
|
|
|
- `plugins/` - 项目插件
|
|
|
- `router/` - 前端路由配置
|
|
|
- `stores/` - 状态管理 (Pinia)
|
|
|
- `styles/` - 全局样式(Sass)
|
|
|
- `utils/` - 工具函数 (日期格式化,数据处理等)
|
|
|
- `views/` - 页面级别的组件 (Pages)
|
|
|
- `Design/` - 设计面板页面
|
|
|
- `CommManagement/` (通信管理)
|
|
|
- `ControllerManagement/` (控制器管理)
|
|
|
- `Controls/` (设计控制控件集合组件)
|
|
|
- `ImagesCapture/` (图像集 design-panel-controls)
|
|
|
- `LogManagement/` (日志管理)
|
|
|
- `Settings/` - (设置)
|
|
|
- `Workflow/` - (工作流)
|
|
|
- `index.vue` - 设计面板页面入口文件。
|
|
|
- `App.vue` - 主应用组件 (Vue.js)
|
|
|
- `main.ts` - 渲染进程入口
|
|
|
- `env.d.ts` - 环境变量类型定义
|
|
|
- `auto-imports.d.ts` - 自动导入的模块类型定义
|
|
|
- `components.d.ts` - 组件类型定义
|
|
|
- `index.html` - HTML 入口文件
|
|
|
- `types/` - 全局类型定义
|
|
|
|
|
|
### 📁 `test/`
|
|
|
- **测试目录**
|
|
|
包含应用程序的各种测试
|
|
|
- `e2e/` - 端到端测试
|
|
|
- `unit/` - 单元测试
|
|
|
- `mocks/` - 测试用模拟数据
|
|
|
|
|
|
## 配置文件
|
|
|
|
|
|
### ⚙️ 基础配置
|
|
|
| 文件 | 用途 |
|
|
|
|------|------|
|
|
|
| `package.json` | 项目元数据、依赖项和 NPM 脚本 |
|
|
|
| `package-lock.json` | 锁定依赖版本确保一致性 |
|
|
|
| `tsconfig.json` | TypeScript 基础配置 |
|
|
|
| `tsconfig.node.json` | Node.js 环境 TypeScript 配置 |
|
|
|
| `tsconfig.web.json` | 浏览器环境 TypeScript 配置 |
|
|
|
|
|
|
### 🛠️ 构建工具
|
|
|
| 文件 | 用途 |
|
|
|
|------|------|
|
|
|
| `electron.vite.config.ts` | Vite 的 Electron 专用配置 |
|
|
|
| `electron-builder.yml` | Electron 应用打包配置 |
|
|
|
| `postcss.config.js` | PostCSS 处理配置 |
|
|
|
| `tailwind.config.js` | Tailwind CSS 样式框架配置 |
|
|
|
|
|
|
### 🧹 代码质量
|
|
|
| 文件 | 用途 |
|
|
|
|------|------|
|
|
|
| `.editorconfig` | 跨编辑器/IDE 的代码风格统一 |
|
|
|
| `.eslintrc.cjs` | ESLint 代码检查配置 |
|
|
|
| `.eslintignore` | ESLint 忽略文件配置 |
|
|
|
| `.prettierrc.yaml` | Prettier 代码格式化配置 |
|
|
|
| `.prettierignore` | Prettier 忽略文件配置 |
|
|
|
|
|
|
### 📌 其他文件
|
|
|
| 文件 | 用途 |
|
|
|
|------|------|
|
|
|
| `.gitignore` | Git 版本控制忽略规则 |
|
|
|
| `.npmrc` | npm 配置 |
|
|
|
| `README.md` | 项目说明文档 |
|
|
|
|
|
|
## 技术栈概览
|
|
|
|
|
|
- **核心框架**: Electron
|
|
|
- **开发语言**: TypeScript
|
|
|
- **构建工具**: Vite
|
|
|
- **UI 框架**: Element Plus
|
|
|
- **样式方案**: Tailwind CSS
|
|
|
- **代码质量**: ESLint + Prettier
|
|
|
- **打包工具**: electron-builder
|
|
|
- **CSS 处理**: PostCSS
|
|
|
- **测试框架**: Vitest
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
- [electron-vite-bytecode-example](https://github.com/alex8088/electron-vite-bytecode-example), source code protection
|
|
|
- [electron-vite-decorator-example](https://github.com/alex8088/electron-vite-decorator-example), typescipt decorator
|
|
|
- [electron-vite-worker-example](https://github.com/alex8088/electron-vite-worker-example), worker and fork
|