# nest-electron-dev
**Repository Path**: sitdown-liu/nest-electron-dev
## Basic Information
- **Project Name**: nest-electron-dev
- **Description**: 基于NestJS+Electron实现的桌面软件开发框架。UI界面使用Angular14/Vue3实现
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: For-Angular
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 1
- **Created**: 2022-10-21
- **Last Updated**: 2025-07-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 程序开发, 桌面软件开发框架, UI组件
## README
# NE框架: NestJS + Electron & Esbuild
基于[NestJS](https://nestjs.com/)+[Electron](https://www.electronjs.org/)实现的桌面软件开发框架,让开发者能快速搭建一个使用Web技术开发桌面端应用软件的基础环境。
主进程是用esbuild构建的,主程序中集成了NestJS,并且基于NestJS集成了SQLite、LowDB等常用类库,让开发者可以像写NestJS后端一样编写自己的代码。
UI界面使用的Angular并集成了DevUI库,让开发者在编写UI界面时能使用与NestJS相同的语法,感觉这样的编码模式很酷。考虑到开发者的使用习惯,我也会延迟发布For Vue分支,同样集成DevUI库。
编译工具使用了更快速更轻量级的Vite,开发者可以使用“vite build”快速打包发布自己的应用程序。但遗憾的是目前[@angular/cli](https://github.com/angular/angular-cli.git)还未支持Vite,使用For Angular分支需要先"ng"再"vite"。但你不用担心,只要ngc一旦支持vite,本框架也会第一时间同步更新。For Vue不会受到上述影响。
## 仓库地址
> GitHub:https://github.com/SitdownLiu/nest-electron-dev
>
> 码云:https://gitee.com/sitdown-liu/nest-electron-dev
## 环境要求
```basic
nodejs v16.x
npm v8.x
node-gyp v9.x
typescript >= v4.5.x <= v4.8.x
```
## 快速开始
- 直接克隆此仓库
```bash
git clone https://gitee.com/sitdown-liu/nest-electron-dev.git
```
- For Angular:
```basic
# 安装依赖包
yarn # npm install
# 运行开发模式
yarn dev:ng # npm run dev:ng
yarn dev:ne # npm run dev:ne
# 发布
yarn build:ng # npm run build:ng
yarn build:ne # npm run build:ne
```
- For Vue
```basic
# 安装依赖包
yarn # npm install
# 运行开发模式
yarn dev # npm run dev
# 发布
yarn build # npm run build
```
## 使用PNPM请注意
与`pnpm`一起使用,你需要调整你的`.npmrc`
```bash
node-linker=hoisted
public-hoist-pattern=*
shamefully-hoist=true
```
## 常见问题
- SQLite3安装/编译失败
使用electron开发桌面程序,sqlite编译最容易出错,你需要提前安装好Python2.7([下载地址](https://www.python.org/downloads/))和vs2015([下载地址](https://visualstudio.microsoft.com/zh-hans/downloads/)),然后执行以下操作:
```bash
#安装Windows的相关环境
npm install --global --production windows-build-tools
#安装node-gyp
npm install -g node-gyp
#安装并构建兼容electron的sqlite
npm install sqlite3 --build-from-source --runtime=electron --target=21.1.0 --dist-url=https://electronjs.org/headers
```
如果安装失败也许是你所在的网段被墙了,你可以使用网络代理、国内镜像或cnpm。
如果在`.\node_moudles\sqlite3\lib\binding\`下多了一个`electron-v3.1-win32-x64`文件夹,其下名为`‘node_sqlite3.node’`的文件就是electron所需要的sqlite文件,到这里就已经安装完成了。
你也可以尝试手动构建支持electron的sqlite文件
```bash
#在package.json中添加脚本
"scripts": {
"postinstall": "electron-builder install-app-deps",
"rebuild": "electron-rebuild -f -w sqlite3"
},
#执行脚本
npm run postinstall
npm run rebuild
```
在Windows平台上安装和编译SQLite3会碰到一些奇怪的程序异常,以上纯粹个人经验,你还可以在[SQLite3 bindings for NodeJS](https://github.com/TryGhost/node-sqlite3)寻找其他解决方案。