363 lines
10 KiB
Markdown
363 lines
10 KiB
Markdown
|
|
# 项目结构优化方案
|
||
|
|
|
||
|
|
**创建时间:** 2026-01-29
|
||
|
|
**问题:** 陪伴员个人资料页面输入框点击无反应
|
||
|
|
**根本原因:** 项目存在双重目录结构,pages.json配置混乱
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 问题诊断
|
||
|
|
|
||
|
|
### 1. 当前目录结构问题
|
||
|
|
|
||
|
|
项目中存在**两套完全相同的代码**:
|
||
|
|
|
||
|
|
#### ❌ 根目录下的旧代码 (不应该存在)
|
||
|
|
```
|
||
|
|
peidu/uniapp/
|
||
|
|
├── teacher-package/
|
||
|
|
├── user-package/
|
||
|
|
├── manager-package/
|
||
|
|
├── order-package/
|
||
|
|
├── distributor-package/
|
||
|
|
├── provider-package/
|
||
|
|
├── training-package/
|
||
|
|
├── service-package/
|
||
|
|
├── common-package/
|
||
|
|
├── api/
|
||
|
|
├── components/
|
||
|
|
├── pages/
|
||
|
|
├── utils/
|
||
|
|
└── ...
|
||
|
|
```
|
||
|
|
|
||
|
|
#### ✅ src目录下的新代码 (正确的开发目录)
|
||
|
|
```
|
||
|
|
peidu/uniapp/src/
|
||
|
|
├── teacher-package/
|
||
|
|
├── user-package/
|
||
|
|
├── manager-package/
|
||
|
|
├── order-package/
|
||
|
|
├── distributor-package/
|
||
|
|
├── provider-package/
|
||
|
|
├── training-package/
|
||
|
|
├── service-package/
|
||
|
|
├── common-package/
|
||
|
|
├── api/
|
||
|
|
├── components/
|
||
|
|
├── pages/
|
||
|
|
├── utils/
|
||
|
|
└── ...
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. pages.json配置混乱
|
||
|
|
|
||
|
|
当前配置中,subPackages的root路径**不统一**:
|
||
|
|
|
||
|
|
| 分包名称 | 当前配置 | 状态 | 加载的代码位置 |
|
||
|
|
|---------|---------|------|--------------|
|
||
|
|
| order-package | `src/order-package` | ✅ 正确 | src目录 |
|
||
|
|
| user-package | `user-package` | ❌ 错误 | 根目录(旧代码) |
|
||
|
|
| teacher-package | `src/teacher-package` | ✅ 正确 | src目录 |
|
||
|
|
| manager-package | `manager-package` | ❌ 错误 | 根目录(旧代码) |
|
||
|
|
| distributor-package | `src/distributor-package` | ✅ 正确 | src目录 |
|
||
|
|
| provider-package | `src/provider-package` | ✅ 正确 | src目录 |
|
||
|
|
| training-package | `src/training-package` | ✅ 正确 | src目录 |
|
||
|
|
| activity-package | `activity-package` | ❌ 错误 | 根目录(旧代码) |
|
||
|
|
| service-package | `src/service-package` | ✅ 正确 | src目录 |
|
||
|
|
| common-package | `src/common-package` | ✅ 正确 | src目录 |
|
||
|
|
|
||
|
|
### 3. 导致的问题
|
||
|
|
|
||
|
|
1. **输入框无反应** - 修改了src目录的代码,但运行时加载的是根目录的旧代码
|
||
|
|
2. **代码冗余** - 两套代码会被打包,增加包体积
|
||
|
|
3. **版本不一致** - 不知道该修改哪个目录的代码
|
||
|
|
4. **维护困难** - 开发时容易修改错目录
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 优化方案
|
||
|
|
|
||
|
|
### 方案目标
|
||
|
|
|
||
|
|
1. 统一使用`src/`目录作为源代码目录
|
||
|
|
2. 清理根目录下的旧代码
|
||
|
|
3. 修正pages.json配置
|
||
|
|
4. 建立标准的uniapp项目结构
|
||
|
|
|
||
|
|
### 优化步骤
|
||
|
|
|
||
|
|
#### 步骤1: 备份当前配置
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 备份pages.json
|
||
|
|
copy peidu\uniapp\pages.json peidu\uniapp\pages.json.backup
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 步骤2: 修改pages.json配置
|
||
|
|
|
||
|
|
需要修改的subPackages配置:
|
||
|
|
|
||
|
|
```json
|
||
|
|
// 修改前 → 修改后
|
||
|
|
|
||
|
|
// user-package
|
||
|
|
"root": "user-package" → "root": "src/user-package"
|
||
|
|
|
||
|
|
// manager-package
|
||
|
|
"root": "manager-package" → "root": "src/manager-package"
|
||
|
|
|
||
|
|
// activity-package
|
||
|
|
"root": "activity-package" → "root": "src/activity-package"
|
||
|
|
```
|
||
|
|
|
||
|
|
**完整的修改内容:**
|
||
|
|
|
||
|
|
在`peidu/uniapp/pages.json`中,找到这三个subPackages配置并修改:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"root": "src/user-package", // 原: "user-package"
|
||
|
|
"name": "user",
|
||
|
|
"pages": [...]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"root": "src/manager-package", // 原: "manager-package"
|
||
|
|
"name": "manager",
|
||
|
|
"pages": [...]
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"root": "src/activity-package", // 原: "activity-package"
|
||
|
|
"name": "activity",
|
||
|
|
"pages": [...]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 步骤3: 归档旧目录
|
||
|
|
|
||
|
|
将根目录下的旧package移动到Archive目录:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 创建归档目录
|
||
|
|
mkdir Archive\old-packages-2026-01-29
|
||
|
|
|
||
|
|
# 移动旧目录
|
||
|
|
move peidu\uniapp\teacher-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\user-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\manager-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\order-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\distributor-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\provider-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\training-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\service-package Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\common-package Archive\old-packages-2026-01-29\
|
||
|
|
|
||
|
|
# 可选: 也可以移动其他旧目录
|
||
|
|
move peidu\uniapp\api Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\components Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\pages Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\utils Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\mixins Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\store Archive\old-packages-2026-01-29\
|
||
|
|
move peidu\uniapp\config Archive\old-packages-2026-01-29\
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 步骤4: 清理编译缓存
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 删除编译输出
|
||
|
|
rmdir /s /q peidu\uniapp\dist
|
||
|
|
|
||
|
|
# 删除微信开发者工具缓存(如果存在)
|
||
|
|
rmdir /s /q peidu\uniapp\.hbuilderx
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 步骤5: 重新编译
|
||
|
|
|
||
|
|
在HBuilderX或命令行中重新编译项目:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd peidu\uniapp
|
||
|
|
npm run dev:mp-weixin
|
||
|
|
```
|
||
|
|
|
||
|
|
#### 步骤6: 验证修复
|
||
|
|
|
||
|
|
1. 打开微信开发者工具
|
||
|
|
2. 进入陪伴员个人资料页面
|
||
|
|
3. 点击输入框(毕业学校、专业、居住地址等)
|
||
|
|
4. 应该能正常弹出输入对话框
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 修改清单
|
||
|
|
|
||
|
|
### 需要修改的文件
|
||
|
|
|
||
|
|
- [ ] `peidu/uniapp/pages.json` - 修改3个subPackages的root路径
|
||
|
|
|
||
|
|
### 需要移动的目录
|
||
|
|
|
||
|
|
- [ ] `peidu/uniapp/teacher-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/user-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/manager-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/order-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/distributor-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/provider-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/training-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/service-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/common-package/` → `Archive/old-packages-2026-01-29/`
|
||
|
|
- [ ] `peidu/uniapp/api/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
- [ ] `peidu/uniapp/components/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
- [ ] `peidu/uniapp/pages/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
- [ ] `peidu/uniapp/utils/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
- [ ] `peidu/uniapp/mixins/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
- [ ] `peidu/uniapp/store/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
- [ ] `peidu/uniapp/config/` → `Archive/old-packages-2026-01-29/` (可选)
|
||
|
|
|
||
|
|
### 需要删除的目录
|
||
|
|
|
||
|
|
- [ ] `peidu/uniapp/dist/` - 编译输出,重新编译会自动生成
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ 优化后的项目结构
|
||
|
|
|
||
|
|
```
|
||
|
|
peidu/uniapp/
|
||
|
|
├── src/ # 所有源代码
|
||
|
|
│ ├── pages/ # 主包页面
|
||
|
|
│ ├── teacher-package/ # 陪伴员分包
|
||
|
|
│ ├── user-package/ # 用户分包
|
||
|
|
│ ├── manager-package/ # 管理师分包
|
||
|
|
│ ├── order-package/ # 订单分包
|
||
|
|
│ ├── distributor-package/ # 分销员分包
|
||
|
|
│ ├── provider-package/ # 服务商分包
|
||
|
|
│ ├── training-package/ # 培训分包
|
||
|
|
│ ├── service-package/ # 服务分包
|
||
|
|
│ ├── activity-package/ # 活动分包
|
||
|
|
│ ├── common-package/ # 公共分包
|
||
|
|
│ ├── api/ # API接口
|
||
|
|
│ ├── components/ # 组件
|
||
|
|
│ ├── utils/ # 工具函数
|
||
|
|
│ ├── mixins/ # 混入
|
||
|
|
│ ├── store/ # 状态管理
|
||
|
|
│ ├── config/ # 配置
|
||
|
|
│ ├── static/ # 静态资源
|
||
|
|
│ ├── App.vue # 应用入口
|
||
|
|
│ ├── main.js # 主入口
|
||
|
|
│ ├── pages.json # 页面配置
|
||
|
|
│ ├── manifest.json # 应用配置
|
||
|
|
│ └── uni.scss # 全局样式
|
||
|
|
├── dist/ # 编译输出(自动生成)
|
||
|
|
├── node_modules/ # 依赖包
|
||
|
|
├── Archive/ # 归档目录
|
||
|
|
│ └── old-packages-2026-01-29/ # 旧代码归档
|
||
|
|
├── package.json # 项目配置
|
||
|
|
├── vite.config.js # 构建配置
|
||
|
|
└── README.md # 项目说明
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚠️ 注意事项
|
||
|
|
|
||
|
|
### 1. 备份重要
|
||
|
|
|
||
|
|
执行前务必备份:
|
||
|
|
- pages.json配置文件
|
||
|
|
- 如果不确定,可以备份整个uniapp目录
|
||
|
|
|
||
|
|
### 2. 检查src目录完整性
|
||
|
|
|
||
|
|
确认`src/`目录下的代码是最新的、完整的。如果有疑问,可以对比两个目录的文件。
|
||
|
|
|
||
|
|
### 3. 重新编译
|
||
|
|
|
||
|
|
修改后必须重新编译,否则不会生效。
|
||
|
|
|
||
|
|
### 4. 清理缓存
|
||
|
|
|
||
|
|
如果修改后还是有问题,尝试:
|
||
|
|
- 删除dist目录
|
||
|
|
- 删除微信开发者工具的缓存
|
||
|
|
- 重启微信开发者工具
|
||
|
|
|
||
|
|
### 5. Git提交
|
||
|
|
|
||
|
|
如果使用Git,建议:
|
||
|
|
- 先提交当前代码
|
||
|
|
- 再执行优化
|
||
|
|
- 优化后单独提交,方便回滚
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔍 验证方法
|
||
|
|
|
||
|
|
### 1. 检查pages.json
|
||
|
|
|
||
|
|
打开`peidu/uniapp/pages.json`,确认所有subPackages的root都以`src/`开头。
|
||
|
|
|
||
|
|
### 2. 检查目录结构
|
||
|
|
|
||
|
|
确认根目录下没有package目录,所有代码都在`src/`下。
|
||
|
|
|
||
|
|
### 3. 测试功能
|
||
|
|
|
||
|
|
- 陪伴员个人资料页面输入框能正常弹出
|
||
|
|
- 其他页面功能正常
|
||
|
|
- 编译无错误
|
||
|
|
|
||
|
|
### 4. 检查包体积
|
||
|
|
|
||
|
|
优化后编译的包体积应该会减小(因为不会重复打包两套代码)。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📞 如果遇到问题
|
||
|
|
|
||
|
|
### 问题1: 编译报错找不到文件
|
||
|
|
|
||
|
|
**原因:** pages.json中的路径配置错误
|
||
|
|
**解决:** 检查pages.json中所有路径是否正确
|
||
|
|
|
||
|
|
### 问题2: 页面空白或报错
|
||
|
|
|
||
|
|
**原因:** 可能src目录的代码不完整
|
||
|
|
**解决:** 从Archive恢复旧代码,对比差异
|
||
|
|
|
||
|
|
### 问题3: 功能异常
|
||
|
|
|
||
|
|
**原因:** 可能src目录和旧目录的代码版本不一致
|
||
|
|
**解决:** 对比两个目录的代码,确保src目录是最新的
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📝 执行记录
|
||
|
|
|
||
|
|
执行时请在此记录:
|
||
|
|
|
||
|
|
- [ ] 执行日期: ___________
|
||
|
|
- [ ] 执行人: ___________
|
||
|
|
- [ ] 备份位置: ___________
|
||
|
|
- [ ] 是否成功: ___________
|
||
|
|
- [ ] 遇到的问题: ___________
|
||
|
|
- [ ] 解决方法: ___________
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 预期效果
|
||
|
|
|
||
|
|
优化完成后:
|
||
|
|
|
||
|
|
1. ✅ 陪伴员个人资料页面输入框正常工作
|
||
|
|
2. ✅ 项目结构清晰,只有一套源代码
|
||
|
|
3. ✅ 编译包体积减小
|
||
|
|
4. ✅ 开发维护更方便
|
||
|
|
5. ✅ 不会再出现"修改了代码但不生效"的问题
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**文档版本:** v1.0
|
||
|
|
**最后更新:** 2026-01-29
|