- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
3.7 KiB
3.7 KiB
前端模块加载错误修复记录
日期:2025-10-16
问题:assignment-center.vue 页面加载 task.ts 模块失败
状态:✅ 已修复
错误信息
GET http://localhost:3001/src/api/task.ts net::ERR_ABORTED 500 (Internal Server Error)
Router error: TypeError: Failed to fetch dynamically imported module
问题分析
新创建的 kaopeilian-frontend/src/api/task.ts 文件存在以下问题:
- 错误的导入路径:使用了不存在的
@/utils/request - 错误的类型导入:从不存在的
./types导入ResponseModel - 错误的HTTP客户端:使用了不存在的
request对象
解决方案
修改内容
文件:kaopeilian-frontend/src/api/task.ts
修改前:
import request from '@/utils/request'
import type { ResponseModel } from './types'
export function getTasks(...) {
return request.get('/api/v1/manager/tasks', { params })
}
修改后:
import { http } from '@/utils/http'
import type { ResponseModel } from '@/types/practice'
export function getTasks(...) {
return http.get('/api/v1/manager/tasks', { params })
}
修改清单
- ✅ 导入:
@/utils/request→@/utils/http - ✅ 类型:
./types→@/types/practice - ✅ 客户端:
request.xxx→http.xxx(所有6个API方法)
额外操作
- ✅ 清理Vite缓存:
rm -rf node_modules/.vite - ✅ 重启前端容器:
docker restart kaopeilian-frontend-dev
验证步骤
-
检查前端服务状态
docker ps | grep frontend # 状态:Up 18 seconds (healthy) ✅ -
验证文件修复
cat kaopeilian-frontend/src/api/task.ts | head -10 # 确认导入已修正 ✅ -
浏览器测试
- 强制刷新页面(Ctrl+Shift+R 或 Cmd+Shift+R)
- 访问任务中心:
/manager/assignment-center - 检查控制台无错误
技术说明
项目HTTP客户端架构
本项目使用以下HTTP客户端配置:
-
HTTP客户端:
@/utils/http.ts- 基于 axios 的增强请求库
- 集成认证、错误处理、重试等功能
- 导出:
http对象
-
类型定义:
@/types/practice.ts- 定义
ResponseModel<T>接口 - 统一API响应格式
- 定义
-
使用示例:
import { http } from '@/utils/http' import type { ResponseModel } from '@/types/practice' export function getData(): Promise<ResponseModel<Data>> { return http.get('/api/v1/data') }
为什么不使用 request?
- ❌
@/utils/request.ts文件不存在 - ❌ 项目没有导出
request对象 - ✅ 正确的是使用
http对象
相关文件
修改的文件
kaopeilian-frontend/src/api/task.ts
相关文件
kaopeilian-frontend/src/utils/http.ts- HTTP客户端实现kaopeilian-frontend/src/types/practice.ts- 类型定义kaopeilian-frontend/src/views/manager/assignment-center.vue- 使用task API的页面
经验总结
-
创建新API文件时检查项:
- ✅ 使用正确的HTTP客户端(
http而非request) - ✅ 从正确位置导入类型(
@/types/practice) - ✅ 遵循项目现有的API文件模式
- ✅ 使用正确的HTTP客户端(
-
参考现有API文件:
kaopeilian-frontend/src/api/practice.ts- 正确的导入示例kaopeilian-frontend/src/api/exam/index.ts- API封装参考
-
调试模块加载错误:
- 检查导入路径是否正确
- 检查导入的对象是否存在
- 清理缓存并重启服务
状态
✅ 问题已解决
✅ 前端服务运行正常
✅ task.ts 模块可以正常加载
下一步:用户在浏览器刷新页面后,任务中心应能正常加载真实数据。