# extreme-choice **Repository Path**: Sonve/extreme-choice ## Basic Information - **Project Name**: extreme-choice - **Description**: 极端抉择 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-21 - **Last Updated**: 2026-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # extreme-choice `extreme-choice` 是一个采用前后端分离结构的同仓库项目,当前已完成 superteam 协作工作区与根目录共享初始化,后续将分别由前端与后端角色完成各自脚手架初始化。 ## 技术栈 - 前端:Vue3 + JavaScript + Vite + Vue Router + Pinia + Element Plus + UnoCSS + Sass + Axios + VueUse + Lodash + Mock - 后端:NestJS + TypeScript + Prisma ORM v7 + PostgreSQL + Redis - 包管理:pnpm ## 环境要求 - Node.js:>= 20 - pnpm:>= 9 ## 快速开始 1. 参考 `CONFIG.md` 中的环境变量说明,在对应子项目目录下创建 `.env.*` 文件并填写配置。 2. 前端初始化完成后,在 `frontend/web` 下执行 `pnpm install` 与 `pnpm dev`。 3. 后端初始化完成后,在 `backend` 下执行 `pnpm install` 与 `pnpm start:dev`。 ## 当前目录结构 ```text . ├── .superteam/ ├── CONFIG.md ├── README.md └── 后续由任务单驱动生成: ├── frontend/web └── backend ``` ## 协作说明 - `pm` 负责根目录共享文件与任务单维护 - `frontend-coder` 负责 `frontend/web` 初始化 - `backend-coder` 负责 `backend/` 初始化 - 运行态角色声明位于 `.superteam/runtime/`,该目录不纳入版本控制 ## 开发前必读 - 前后端正式开始编码前,先阅读开发计划: - `.superteam/plans/00-plan-frontend-backend-separate-development.md` - 设计文档入口: - `.superteam/docs/README.md` ## 宝塔部署 ### 前端 部署至 `HTML项目` 后,伪静态需要配置: ``` location /api/v1/ { proxy_pass http://127.0.0.1:3068/api/v1/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; } location / { try_files $uri $uri/ /index.html; } ``` - `location /api/v1/` 需要写在前面,它是 api 反向代理 - `location /` 需要写在后面,它是 vue history 路由 ### 后端 1. 先在 `backend/` 下运行: ```bash pnpm i pnpm prisma:generate pnpm build ``` 2. 然后上传文件: - dist/ - package.json - pnpm-lock.yaml - prisma/ - prisma.config.ts - .env.production > 注意:生产环境 `.env.production` 的 `DB_HOST` 和 `DATABASE_URL` 中地址相关部分一定要配置成 `127.0.0.1`,最好不要频繁跟发布包一起传,直接在服务器上维护即可 3. 宝塔 `Node项目` 中,点击添加项目:默认项目 - 项目目录:选择新建的后端项目目录 - 启动选项:选择 `start:prod` - 端口:3068 - 域名:不设置域名,默认 127.0.0.1 4. 生产机运行 ```bash pnpm i pnpm prisma:migrate:deploy pnpm start:prod ``` > 其中 `pnpm start:prod` 在宝塔中已有 `启动选项`,故无需手动执行 4. 保持后启动即可