f22338beb3
- 修改 build:mp-weixin 脚本,显式添加 --mode production 参数 - 新增 build:mp-weixin:test 脚本,用于体验版构建 (--mode test) - 创建 .env.test 环境配置,指向服务器 API 并保留 DEBUG=true - 更新 README.md 文档,说明环境配置和构建命令区别 修复问题:之前构建脚本缺少 --mode 参数,可能导致使用默认开发环境配置 (localhost)
255 lines
7.1 KiB
Markdown
255 lines
7.1 KiB
Markdown
# 人生 OS 微信小程序
|
||
|
||
基于 UniApp + Vue 3 的人生 OS 微信小程序,与 Web 端(life-script)共享后端 API。
|
||
|
||
## 技术栈
|
||
|
||
- **框架**: UniApp
|
||
- **语言**: Vue 3 + TypeScript
|
||
- **状态管理**: Pinia
|
||
- **HTTP 请求**: uni.request 封装
|
||
|
||
## 快速开始
|
||
|
||
### 1. 安装依赖
|
||
|
||
```bash
|
||
cd mini-program
|
||
npm install
|
||
# 或使用 pnpm
|
||
pnpm install
|
||
```
|
||
|
||
### 2. 开发模式
|
||
|
||
#### 微信小程序开发预览
|
||
|
||
```bash
|
||
# 启动微信小程序开发服务器
|
||
npm run dev:mp-weixin
|
||
# 或
|
||
pnpm dev:mp-weixin
|
||
```
|
||
|
||
启动后,打开**微信开发者工具**:
|
||
1. 导入项目目录:`mini-program/unpackage/dist/dev/mp-weixin`
|
||
2. 在开发者工具中可以实时预览和调试
|
||
|
||
#### H5 开发预览
|
||
|
||
```bash
|
||
# 启动 H5 开发服务器
|
||
npm run dev:h5
|
||
# 或
|
||
pnpm dev:h5
|
||
```
|
||
|
||
启动后,在浏览器访问:`http://localhost:5173`
|
||
|
||
### 3. 编译打包
|
||
|
||
#### 编译为微信小程序(生产环境/正式版)
|
||
|
||
```bash
|
||
# 生产环境编译(调用服务器 API,DEBUG=false)
|
||
npm run build:mp-weixin
|
||
# 或
|
||
pnpm build:mp-weixin
|
||
```
|
||
|
||
编译输出目录:`unpackage/dist/build/mp-weixin`
|
||
|
||
**说明**:此命令用于编译正式版小程序,使用生产环境配置,调用服务器 API。
|
||
|
||
#### 编译为微信小程序(测试环境/体验版)
|
||
|
||
```bash
|
||
# 测试环境编译(调用服务器 API,DEBUG=true)
|
||
npm run build:mp-weixin:test
|
||
# 或
|
||
pnpm build:mp-weixin:test
|
||
```
|
||
|
||
编译输出目录:`unpackage/dist/test/mp-weixin`
|
||
|
||
**说明**:此命令用于编译体验版小程序,使用测试环境配置,调用服务器 API 但保留 DEBUG 模式便于调试。
|
||
|
||
**部署步骤**:
|
||
1. 打开微信开发者工具
|
||
2. 导入目录:`mini-program/unpackage/dist/build/mp-weixin`
|
||
3. 点击「上传」按钮,上传代码到微信公众平台
|
||
4. 登录微信公众平台进行版本提交和发布
|
||
|
||
#### 编译为 H5
|
||
|
||
```bash
|
||
# 生产环境编译
|
||
npm run build:h5
|
||
# 或
|
||
pnpm build:h5
|
||
```
|
||
|
||
编译输出目录:`unpackage/dist/build/h5`
|
||
|
||
### 4. 环境配置
|
||
|
||
项目使用 `.env` 文件管理环境变量:
|
||
|
||
| 文件 | 说明 | 用途 |
|
||
|------|------|------|
|
||
| `.env.development` | 开发环境配置 | 本地开发调试,指向 localhost |
|
||
| `.env.test` | 测试环境配置 | 小程序体验版,指向服务器 API |
|
||
| `.env.production` | 生产环境配置 | 小程序正式版,指向服务器 API |
|
||
|
||
**开发环境配置**(`.env.development`):
|
||
```bash
|
||
VITE_APP_ENV=dev
|
||
VITE_API_BASE_URL=http://localhost:19089/api
|
||
VITE_WS_URL=ws://localhost:19089
|
||
VITE_DEBUG=true
|
||
```
|
||
|
||
**测试环境配置**(`.env.test`):
|
||
```bash
|
||
VITE_APP_ENV=test
|
||
VITE_API_BASE_URL=http://101.200.208.45:19089/api
|
||
VITE_WS_URL=ws://101.200.208.45:19089
|
||
VITE_DEBUG=true
|
||
```
|
||
|
||
**生产环境配置**(`.env.production`):
|
||
```bash
|
||
VITE_APP_ENV=prod
|
||
VITE_API_BASE_URL=http://101.200.208.45:19089/api
|
||
VITE_WS_URL=ws://101.200.208.45:19089
|
||
VITE_DEBUG=false
|
||
```
|
||
|
||
**环境选择指南**:
|
||
- **本地开发**:使用 `npm run dev:mp-weixin`,自动加载开发环境配置
|
||
- **体验版发布**:使用 `npm run build:mp-weixin:test`,使用测试环境配置(服务器 API + DEBUG 模式)
|
||
- **正式版发布**:使用 `npm run build:mp-weixin`,使用生产环境配置(服务器 API + 关闭 DEBUG)
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
mini-program/
|
||
├── src/
|
||
│ ├── pages/ # 页面目录
|
||
│ │ ├── splash/ # 启动页
|
||
│ │ ├── login/ # 登录页
|
||
│ │ ├── onboarding/ # 引导页
|
||
│ │ ├── main/ # 主页容器
|
||
│ │ │ ├── index.vue # 主页面
|
||
│ │ │ ├── RecordView.vue # 记录页
|
||
│ │ │ ├── ScriptView.vue # 剧本页
|
||
│ │ │ └── PathView.vue # 路径页
|
||
│ │ └── profile/ # 个人页
|
||
│ ├── components/ # 公共组件
|
||
│ │ └── MusicPlayer.vue # 音乐播放器
|
||
│ ├── services/ # API 服务层
|
||
│ │ ├── request.js # 请求封装
|
||
│ │ ├── auth.js # 认证服务
|
||
│ │ ├── userProfile.js # 用户档案服务
|
||
│ │ ├── lifeEvent.js # 生命事件服务
|
||
│ │ ├── epicScript.js # 剧本服务
|
||
│ │ └── lifePath.js # 路径服务
|
||
│ ├── stores/ # 状态管理
|
||
│ │ └── app.js # 应用状态
|
||
│ ├── config/ # 配置文件
|
||
│ │ └── env.js # 环境配置
|
||
│ ├── static/ # 静态资源
|
||
│ ├── App.vue # 应用入口
|
||
│ ├── main.js # 应用入口 JS
|
||
│ ├── manifest.json # 应用配置
|
||
│ ├── pages.json # 页面配置
|
||
│ └── uni.scss # 全局样式
|
||
├── .env.development # 开发环境变量
|
||
├── .env.production # 生产环境变量
|
||
├── package.json # 项目依赖
|
||
├── tsconfig.json # TypeScript 配置
|
||
└── vite.config.js # Vite 配置
|
||
```
|
||
|
||
## 开发说明
|
||
|
||
### API 接口
|
||
|
||
小程序与 Web 端(life-script)共享同一套后端 API,接口文档参考 life-script 项目。
|
||
|
||
主要服务包括:
|
||
- **auth.js**: 用户认证(登录、注册、验证码)
|
||
- **userProfile.js**: 用户档案管理
|
||
- **lifeEvent.js**: 生命事件记录
|
||
- **epicScript.js**: AI 剧本生成
|
||
- **lifePath.js**: 实现路径规划
|
||
|
||
### 样式规范
|
||
|
||
小程序使用全局样式 + 组件作用域样式:
|
||
|
||
- **全局样式**: `src/App.vue` 中定义,包括玻璃态效果、渐变按钮、动画等
|
||
- **主题色**:
|
||
- 主背景:`#0F071A`
|
||
- 渐变顶部:`#1A0B2E`
|
||
- 渐变底部:`#050208`
|
||
- 主紫色:`#A855F7`
|
||
- 浅紫色:`#C084FC`
|
||
- 粉色:`#E879F9`
|
||
|
||
### 状态管理
|
||
|
||
使用 Pinia 进行状态管理,主要状态包括:
|
||
- `isLoggedIn`: 登录状态
|
||
- `userProfile`: 用户档案
|
||
- `events`: 生命事件列表
|
||
- `scripts`: 剧本列表
|
||
- `currentPath`: 当前实现路径
|
||
|
||
## 常见问题
|
||
|
||
### 端口占用
|
||
|
||
启动开发服务器前,如遇端口被占用:
|
||
|
||
```bash
|
||
# 清理占用端口的 vite 进程
|
||
./scripts/cleanup-all-vite.sh
|
||
# 或直接运行
|
||
vite
|
||
```
|
||
|
||
### 跨域问题
|
||
|
||
开发环境如遇跨域问题,请确保:
|
||
1. 后端 CORS 配置包含当前开发端口(5173-5190)
|
||
2. 使用正确的 API_BASE_URL
|
||
|
||
### 真机预览
|
||
|
||
1. 在微信开发者工具中点击「预览」
|
||
2. 使用微信扫描二维码
|
||
3. 在真机上查看效果
|
||
|
||
## 部署上线
|
||
|
||
### 小程序发布流程
|
||
|
||
1. **代码编译**: `npm run build:mp-weixin`
|
||
2. **导入工具**: 微信开发者工具导入编译后的目录
|
||
3. **上传代码**: 点击「上传」按钮
|
||
4. **版本管理**: 登录微信公众平台进行版本提交
|
||
5. **审核发布**: 提交审核后等待微信官方审核
|
||
|
||
### H5 部署
|
||
|
||
1. **代码编译**: `npm run build:h5`
|
||
2. **上传服务器**: 将 `unpackage/dist/build/h5` 目录部署到服务器
|
||
3. **配置反向代理**: 配置 Nginx 反向代理后端 API
|
||
|
||
## 参考资料
|
||
|
||
- [UniApp 官方文档](https://uniapp.dcloud.net.cn/)
|
||
- [Vue 3 官方文档](https://vuejs.org/)
|
||
- [微信小程序开发文档](https://developers.weixin.qq.com/miniprogram/dev/framework/)
|