You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
7.3 KiB
Markdown

<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