219 lines
4.8 KiB
Markdown
219 lines
4.8 KiB
Markdown
# 小程序编译错误完整解决方案 - 2026-02-01
|
||
|
||
## 当前错误
|
||
|
||
```
|
||
app.json 文件内容错误: 在项目根目录未找到 app.json
|
||
```
|
||
|
||
## 根本原因
|
||
|
||
1. **pages.json配置错误**(已修复)
|
||
- 配置了不存在的页面路径
|
||
- 导致编译失败
|
||
|
||
2. **编译缓存问题**
|
||
- 微信开发者工具正在使用旧的编译文件
|
||
- 缓存文件被占用,无法删除
|
||
- 需要关闭工具后清除缓存
|
||
|
||
## 完整解决步骤
|
||
|
||
### 步骤1: 关闭微信开发者工具 ⚠️
|
||
|
||
**重要**: 必须完全关闭微信开发者工具,不是最小化!
|
||
|
||
1. 点击微信开发者工具右上角的 ❌ 关闭按钮
|
||
2. 确保工具完全退出(任务栏没有图标)
|
||
|
||
### 步骤2: 清除编译缓存
|
||
|
||
**方式1: 使用批处理文件(推荐)**
|
||
|
||
双击运行: `Archive/[一次性]完整解决编译错误-2026-02-01.bat`
|
||
|
||
**方式2: 手动删除**
|
||
|
||
删除以下目录:
|
||
```
|
||
peidu/uniapp/dist
|
||
peidu/uniapp/unpackage
|
||
peidu/uniapp/node_modules/.cache
|
||
```
|
||
|
||
使用命令:
|
||
```bash
|
||
cd peidu/uniapp
|
||
rmdir /s /q dist
|
||
rmdir /s /q unpackage
|
||
rmdir /s /q node_modules\.cache
|
||
```
|
||
|
||
### 步骤3: 重新打开微信开发者工具
|
||
|
||
1. 打开微信开发者工具
|
||
2. 选择"导入项目"
|
||
3. 项目路径选择: `peidu/uniapp/dist/dev/mp-weixin`
|
||
4. 点击"导入"
|
||
|
||
### 步骤4: 重新编译
|
||
|
||
1. 在微信开发者工具中点击"编译"按钮
|
||
2. 等待编译完成
|
||
3. 查看是否还有错误
|
||
|
||
## 已修复的问题
|
||
|
||
### 1. pages.json配置错误 ✅
|
||
|
||
**文件**: `peidu/uniapp/src/pages.json`
|
||
|
||
**修复内容**:
|
||
```json
|
||
// 修复前(错误)
|
||
{
|
||
"path": "pages/course/detail", // ❌ 路径不存在
|
||
"style": {
|
||
"navigationBarTitleText": "课程详情"
|
||
}
|
||
}
|
||
|
||
// 修复后(正确)
|
||
{
|
||
"path": "pages/academy/course-detail", // ✅ 正确路径
|
||
"style": {
|
||
"navigationBarTitleText": "课程详情"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2. 游客模式后端配置 ✅
|
||
|
||
**文件**: `peidu/backend/src/main/java/com/peidu/config/WebMvcConfig.java`
|
||
|
||
**添加的白名单**:
|
||
```java
|
||
"/api/special/**",
|
||
"/api/special-course/**", // ✅ 新增
|
||
"/api/interest/**",
|
||
"/api/interest-course/**", // ✅ 新增
|
||
```
|
||
|
||
### 3. 游客模式前端配置 ✅
|
||
|
||
**文件**: `peidu/uniapp/src/utils/request.js`
|
||
|
||
**完善的白名单**:
|
||
```javascript
|
||
const GUEST_ALLOWED_URLS = [
|
||
'/api/service/list',
|
||
'/api/service/search',
|
||
'/api/service/detail',
|
||
'/api/special/list',
|
||
'/api/special/detail',
|
||
'/api/special-course/list',
|
||
'/api/special-course/detail',
|
||
'/api/interest-course/list',
|
||
'/api/interest-course/detail',
|
||
'/api/assessment/list',
|
||
'/api/assessment/detail',
|
||
'/api/growth-planning/list',
|
||
'/api/growth-planning/detail',
|
||
'/api/teacher/list',
|
||
'/api/teacher/detail',
|
||
'/api/course/list',
|
||
'/api/course/detail',
|
||
// ... 其他接口
|
||
]
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### Q1: 删除缓存时提示"文件被占用"
|
||
|
||
**原因**: 微信开发者工具还在运行
|
||
|
||
**解决**:
|
||
1. 完全关闭微信开发者工具
|
||
2. 检查任务管理器,确保没有相关进程
|
||
3. 重新尝试删除
|
||
|
||
### Q2: 编译后仍然报错
|
||
|
||
**可能原因**:
|
||
1. 缓存没有完全清除
|
||
2. 后端服务没有重启
|
||
3. 项目路径不正确
|
||
|
||
**解决**:
|
||
1. 再次清除缓存
|
||
2. 重启后端服务
|
||
3. 确认导入的是 `dist/dev/mp-weixin` 目录
|
||
|
||
### Q3: 游客模式仍然返回401
|
||
|
||
**原因**: 后端服务没有重启
|
||
|
||
**解决**:
|
||
1. 停止后端服务(端口8089)
|
||
2. 在IDEA中重新启动 PeiduApplication
|
||
3. 等待启动完成
|
||
4. 重新测试
|
||
|
||
## 测试验证
|
||
|
||
编译成功后,按以下顺序测试:
|
||
|
||
### 1. 基本功能测试
|
||
- [ ] 小程序可以正常启动
|
||
- [ ] 首页可以正常显示
|
||
- [ ] 轮播图可以正常显示
|
||
|
||
### 2. 游客模式测试
|
||
- [ ] 未登录状态下点击"专项突破"
|
||
- [ ] 未登录状态下点击"兴趣培养"
|
||
- [ ] 未登录状态下点击"测评师"
|
||
- [ ] 未登录状态下点击"成长规划师"
|
||
- [ ] 以上页面都应该显示完整数据
|
||
|
||
### 3. 登录拦截测试
|
||
- [ ] 点击"立即预约"提示登录
|
||
- [ ] 点击"立即购买"提示登录
|
||
- [ ] 登录后可以正常操作
|
||
|
||
## 注意事项
|
||
|
||
1. **必须关闭微信开发者工具**
|
||
- 不关闭工具无法删除缓存
|
||
- 缓存不清除会继续使用旧代码
|
||
|
||
2. **后端服务必须重启**
|
||
- 配置修改后必须重启才能生效
|
||
- 确保端口8089可用
|
||
|
||
3. **项目路径要正确**
|
||
- 导入的是 `dist/dev/mp-weixin` 目录
|
||
- 不是 `src` 目录
|
||
|
||
4. **编译需要时间**
|
||
- 首次编译可能需要几分钟
|
||
- 耐心等待编译完成
|
||
|
||
## 如果仍然有问题
|
||
|
||
如果按照以上步骤操作后仍然有问题,请提供:
|
||
|
||
1. 完整的错误信息截图
|
||
2. 微信开发者工具的控制台日志
|
||
3. 后端服务的启动日志
|
||
|
||
## 总结
|
||
|
||
这次修复涉及三个方面:
|
||
|
||
1. **配置修复**: 修复了 pages.json 中的错误路径
|
||
2. **游客模式**: 完善了前后端的游客模式配置
|
||
3. **缓存清除**: 清除了所有编译缓存
|
||
|
||
按照步骤操作后,小程序应该可以正常编译和运行了。
|