# 企业知识库开发说明 ## 本地运行 开发时需要两个进程: ```bash npm run dev npm run worker:media ``` - `npm run dev` 启动 Next.js 页面和 API。 - `npm run worker:media` 消费 BullMQ 队列并调用 FFmpeg 生成 HLS。 - 如果只启动 `npm run dev`,视频可以上传,但会停在 `pending` 或 `processing`,直到 worker 启动。 默认访问地址: ```text http://127.0.0.1:3000/login ``` 默认开发账号来自 seed 数据: ```text admin@ekb.com hashed_password_here ``` ## 构建和开发服务 `next build` 和 `next typegen` 会改写 `.next` 目录。不要在已有 `npm run dev` 进程运行期间执行构建后继续使用旧 dev server;构建或类型检查后请重启开发服务。 推荐顺序: ```bash npm run typecheck npm run build npm run dev ``` ## 媒体测试 媒体测试依赖: - PostgreSQL - Redis - MinIO - FFmpeg - 项目根目录的 `test_sample.mp4` 常用验证命令: ```bash npm run test:upload npm run test:media-pipeline npm run test:media-status npm run test:media-list npm run test:media-permission npm run test:media-delete ``` 测试会尽量清理自己创建的媒体记录、资源记录、原始 MinIO 对象和 HLS 输出。不要用这些测试脚本验证需要长期保留的人工上传文件。 如果本地库里已经有旧测试残留,可以运行: ```bash npm run test:cleanup ``` 该脚本只清理使用测试前缀创建的数据,例如 `e2e-*`、`media-list-*`、`media-status-*`、`admin-flow-*@ekb.com` 和 `/permission-admin/*`。