构建与部署流程
项目结构概览
Intelligent-Learning-Terminal 项目采用前后端分离架构,包含 Web 应用和微信小程序两个主要部分。
目录结构
Intelligent-Learning-Terminal/
├── web/ # Web 应用目录
│ ├── start.py # Web 后端启动脚本
│ ├── package.json # 前端依赖配置
│ └── ... # 其他前端文件
├── miniprogram/ # 微信小程序目录
│ ├── start.py # 小程序后端启动脚本
│ ├── project.config.json # 小程序项目配置
│ └── ... # 其他小程序文件
└── ... # 其他项目文件
Web 应用构建与部署
前端构建流程
根据 web/package.json 配置,Web 前端使用 npm 进行依赖管理和构建。
依赖安装
cd web
npm install
开发模式启动
npm run serve
生产构建
npm run build
构建产出将生成在 dist 目录中,可直接部署到静态文件服务器。
后端启动
Web 应用后端通过 web/start.py 启动。
启动命令
cd web
python start.py
配置说明
start.py 通常包含:
- Flask 或其他 Python Web 框架的初始化
- 路由注册
- 中间件配置
- 数据库连接初始化
- 服务器启动逻辑
部署方式
Web 应用支持多种部署方式:
1. 传统服务器部署(Nginx + Gunicorn/uWSGI)
2. Docker 容器化部署
3. 云平台部署(如阿里云、腾讯云、AWS 等)
微信小程序构建与部署
小程序项目配置
根据 miniprogram/project.config.json,小程序项目使用微信开发者工具进行管理。
配置文件说明
{
"description": "项目配置文件",
"setting": {
"urlCheck": false,
"es6": true,
"enhance": true,
"postcss": true,
"preloadBackgroundData": false,
"minified": true,
"newFeature": true,
"coverView": true,
"nodeModules": false,
"autoAudits": false,
"checkInvalidKey": true,
"checkSiteMap": true,
"uploadWithSourceMap": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"compileType": "miniprogram",
"libVersion": "2.10.4",
"appid": "your_appid",
"projectname": "Intelligent-Learning-Terminal",
"condition": {}
}
小程序后端通过 miniprogram/start.py 启动,提供 API 接口支持。
启动命令
cd miniprogram
python start.py
构建与预览
- 使用微信开发者工具打开
miniprogram目录 - 在开发者工具中进行代码编辑和调试
- 使用「预览」功能在真机上查看效果
- 使用「上传」功能将代码上传至微信服务器
- 在微信公众平台提交审核后发布
小程序特殊注意事项
- 需要有效的微信小程序 AppID
- 必须使用 HTTPS 请求后端接口
- 不支持某些 Node.js 原生模块
- 需要注意请求域名的配置(在微信公众平台设置)
整体部署架构
graph TD
A[用户浏览器] -->|HTTP/HTTPS| B[Web 前端]
A -->|微信小程序| C[微信客户端]
B -->|API 请求| D[Web 后端]
C -->|API 请求| D
D -->|数据库| E[(数据库)]
D -->|缓存| F[(Redis/内存缓存)]
D -->|第三方服务| G[第三方API]
subgraph 部署环境
B -->|静态资源| H[CDN/静态服务器]
D -->|应用服务器| I[后端服务器]
end
CI/CD 流程建议
虽然当前仓库未显式包含 CI/CD 配置,但建议的流程如下:
Web 应用 CI/CD
- 代码提交触发流水线
- 安装依赖并运行单元测试
- 构建生产版本
- 部署到临时环境进行冒烟测试
- 生产环境蓝绿发布或滚动更新
小程序 CI/CD
- 代码提交触发流水线
- 运行小程序单元测试(如有)
- 使用微信 CLI 上传代码
- 自动触发微信平台预览
- 人工确认后提交审核
环境变量配置
项目可能使用环境变量进行配置管理,常见的环境变量包括:
Web 后端
DATABASE_URL: 数据库连接字符串REDIS_URL: Redis 连接地址SECRET_KEY: 应用密钥DEBUG: 调试模式开关PORT: 服务器端口
小程序后端
类似的环境变量用于配置小程序后端服务
常见问题排查
构建失败
- 检查 Node.js 版本是否符合要求
- 确认网络连接正常,能够访问 npm 注册表
- 查看错误日志定位具体失败原因
- 尝试清除缓存后重新安装依赖
启动失败
- 检查端口是否被占用
- 验证数据库连接参数
- 确认所有必需的环境变量已设置
- 查看应用日志获取详细错误信息
部署问题
- Web 应用:确认静态资源路径配置正确
- 小程序:检查后端接口域名是否在微信平台白名单中
- 确认 SSL 证书配置(如果使用 HTTPS)
- 验证防火墙和安全组规则
性能优化建议
前端优化
- 启用代码压缩和混淆
- 利用浏览器缓存
- 使用 CDN 加速静态资源
- 按需加载和代码分割
后端优化
- 实现数据库连接池
- 添加缓存层减少数据库压力
- 使用异步处理提高并发能力
- 定期清理日志和临时文件
小程序优化
- 减小包体积,合理使用分包加载
- 优化图片资源,使用合适的格式和尺寸
- 减少设置数据的频率和数据量
- 使用 wx.request 并发控制
安全考虑
Web 安全
- 实施输入验证和输出编码
- 使用 HTTPS 加密传输
- 实施适当的 CORS 策略
- 防止 CSRF 和 XSS 攻击
- 定期更新依赖修复安全漏洞
小程序安全
- 后端接口需要身份验证和授权
- 敏密数据加密传输和存储
- 验证用户输入防止注入攻击
- 遵循微信小程序安全开发指南
监控与日志
建议在生产环境中实施:
- 应用性能监控(APM)
- 错误追踪和崩溃分析
- 访问日志和业务日志
- 关键指标告警(响应时间、错误率等)
- 定期健康检查和可用性监控