# vue-nest-monorepo-template
**Repository Path**: quct/vue-nest-monorepo
## Basic Information
- **Project Name**: vue-nest-monorepo-template
- **Description**: 开箱即用的nodejs前后端开发模板/脚手架,可快速开发应用。
内置v3-admin-template 开箱即用。
Typescript+vue3+nestjs+prisma+CASL+monorepo+pnpm架构的全栈开发模板。
提供简单使用方法,便于快速上手
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 1
- **Created**: 2024-07-10
- **Last Updated**: 2025-02-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Nestjs, Vue, admin, TypeScript, prisma
## README
# vue-nest-monorepo-template
## 目录
- [介绍](#介绍)
- [特点](#特点)
- [技术栈](#技术栈)
- [已实现模块](#已实现模块)
- [安装](#安装)
- [待办事项](#待办事项)
## 介绍
最简单的开箱即用的nodejs前后端开发模板/脚手架,可快速开发应用,对前端同学友好。
v3-admin-vite:https://github.com/un-pany/v3-admin-vite
后端:nest restful api 提供了完整的单体应用请求-响应链路,包括日志记录、身份验证、RBAC 控制、API 限流、请求数据序列化和响应数据序列化。
前端:通过pnpm workspace与后端nest应用实现了方法及类型共享,可快速切换各种应用
项目旨在为有兴趣转向后端或全栈开发的前端同学提供参考和使用。
# 内置基于 v3-admin-vite的前端模板,开箱即用。使用admin模板切换dev-amin分支。
## 特点
- 提供docker-compose及dockerfile便捷的本地调式及部署
- 基于 RBAC 的权限管理系统,提供细粒度的 API 访问控制,防止越权访问。
- 采用 Monorepo + TypeScript 架构,前端和后端可共享类型定义和方法。shared 包会同时打包为 CommonJS 和 ESM 格式,方便前后端调用。
- 使用 Prisma 快速构建数据库模型,并解决了 Prisma 无法使用 @Comment 描述字段入库的问题。
- 提供 Swagger UI 文档,方便 API 调试和文档管理。
## 技术栈
| 层级 | 技术 |
| -------------- | ---------------------- |
| 前端 | Vue 3 + Vite |
| 后端 | NestJS |
| 数据库和 ORM | Prisma + MySQL + Redis |
| 数据验证 | Class Validator |
| 身份验证和授权 | JWT + Casl |
| 数据加密 | Argon2 |
## 已实现模块
| 模块 | 进度 |
| -------- | ---- |
| 注册登录 | 100% |
| 菜单管理 | 100% |
| 角色管理 | 100% |
| 权限管理 | 100% |
| 日志模块 | 100% |
| 字典管理 | 0% |
### 快速安装
1、克隆项目到本地
```
git clone https://gitee.com/quct/vue-nest-monorepo.git
```
2、全局安装pnpm
```
npm install -g pnpm
```
3、下载docker desktop或者下载mysql、redis到本地
(此处强烈建议安装docker desktop,配合项目中的docker-compose一键运行mysql、redis)
docker 安装使用可参考:https://docker.easydoc.net/
docker desktop安装:https://www.docker.com/products/docker-desktop/
4、安装docker desktop后进入back-end目录使用命令启动docker
(如果直接使用本地的mysql、redis,请参考back-end目录下的.env文件及config目录下的文件配置数据库)
```
cd ./packages/back-end
docker-compose up -d
```
此命令会根据back-end目录下的docker-compose.yml文件下载启动mysql、redis
5、下载依赖
```
pnpm install
```
后续如果想下载全局依赖可执行
```
pnpm install xxx -w
```
如果想给某个包单独安装,比如给back-end安装可使用
```
pnpm --filter ./packages/back-end i xxxx
```
6、初始化数据库环境,进入back-end目录执行
```
npm run db:init
```
7、启动项目,在根目录执行命令可启动前后端项目
```
pnpm run start:all
```
如果想单独启动后端项目,执行
```
pnpm --filter ./packages/back-end run start:dev
```
单独启动前端项目
```
pnpm --filter ./packages/front-end run dev
```
后端运行后
访问http://localhost:3018/swagger 即可查看接口文档
访问http://localhost:3018/api/v1/ 即可使用接口服务
前端访问http://localhost:5173/


### 待办事项
[] 提供字典模块
[√] 提供缓存模块
[ ] 提供admin前端集成