3.9 KiB
3.9 KiB
pages.json配置错误修复说明 - 2026-02-01
问题描述
小程序编译时报错:
app.json 文件内容错误: app.json: 未找到 ["subPackages"][7]["pages"][0] 对应的 activity-package/pages/course/detail.wxml 文件
根本原因
pages.json 中 activity-package 分包配置了一个不存在的页面路径:
错误配置:
{
"root": "activity-package",
"name": "activity",
"pages": [
{
"path": "pages/course/detail", // ❌ 错误:这个路径不存在
"style": {
"navigationBarTitleText": "课程详情"
}
}
]
}
实际目录结构:
activity-package/
├── pages/
│ ├── academy/
│ │ ├── course-detail.vue ✅ 正确的文件
│ │ ├── detail.vue
│ │ └── index.vue
│ ├── activity/
│ ├── camp/
│ ├── growth/
│ ├── interest/
│ ├── study-tour/
│ └── supervision/
└── static/
activity-package 中没有 course 目录,只有 academy 目录,课程详情页面是 academy/course-detail.vue。
修复方案
修改 pages.json 中的路径配置:
修复后的配置:
{
"root": "activity-package",
"name": "activity",
"pages": [
{
"path": "pages/academy/course-detail", // ✅ 正确路径
"style": {
"navigationBarTitleText": "课程详情"
}
}
]
}
修复步骤
1. 修改配置文件 ✅
已修改 peidu/uniapp/src/pages.json 文件
2. 清除编译缓存
方式1:在微信开发者工具中
- 点击菜单栏"工具" → "清除缓存"
- 选择"清除数据缓存"和"清除文件缓存"
- 点击"清除"按钮
方式2:手动删除(需要先关闭微信开发者工具)
- 关闭微信开发者工具
- 删除以下目录:
peidu/uniapp/distpeidu/uniapp/unpackagepeidu/uniapp/node_modules/.cache
3. 重新编译
在微信开发者工具中点击"编译"按钮
注意事项
-
清除缓存前必须关闭微信开发者工具
- 如果工具正在运行,文件会被占用,无法删除
-
确保后端服务已启动
- 端口8089应该可用
- 如果被占用,先停止旧进程
-
游客模式配置已完成
- 后端已添加所有公开接口到白名单
- 前端已配置游客模式逻辑
完整的修复流程
步骤1:修复pages.json配置 ✅
已完成
步骤2:重启后端服务
# 查找占用8089端口的进程
netstat -ano | findstr :8089
# 停止进程
taskkill /F /PID <PID>
# 在IDEA中重新启动 PeiduApplication
步骤3:清除前端缓存并重新编译
# 关闭微信开发者工具
# 删除缓存目录
cd peidu/uniapp
rmdir /s /q dist
rmdir /s /q unpackage
rmdir /s /q node_modules\.cache
# 重新打开微信开发者工具并编译
测试验证
编译成功后,测试以下功能:
1. 游客模式测试
- 专项突破列表显示正常
- 兴趣培养列表显示正常
- 测评师列表显示正常
- 成长规划师列表显示正常
- 课程详情页显示正常
2. 登录拦截测试
- 点击"立即预约"提示登录
- 点击"立即购买"提示登录
- 登录后可以正常预约和购买
涉及的文件
修改的文件
peidu/uniapp/src/pages.json- 修复了activity-package的页面路径配置
相关文件
peidu/uniapp/src/activity-package/pages/academy/course-detail.vue- 实际的课程详情页面peidu/backend/src/main/java/com/peidu/config/WebMvcConfig.java- 后端游客模式配置peidu/uniapp/src/utils/request.js- 前端游客模式配置
总结
这是一个配置错误,pages.json 中配置的页面路径与实际文件路径不匹配。修复后需要清除编译缓存并重新编译才能生效。
同时,游客模式的后端和前端配置都已完成,重新编译后应该可以正常工作。