You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.7 KiB
6.7 KiB
技术栈概览
文档版本:v1.1
最后更新:2025-01-18
目录
1. 核心技术栈
1.1 基础框架
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| 框架 | React | ^19.2.0 | UI 框架 |
| 语言 | TypeScript | ~5.9.3 | 类型安全 |
| 构建工具 | Vite | ^7.2.4 | 快速构建、HMR |
1.2 状态管理
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| 客户端状态 | Zustand | ^5.0.5 | 轻量级状态管理 |
| 服务端状态 | TanStack Query | ^5.80.7 | 服务端状态管理 |
1.3 样式方案
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| CSS 框架 | Tailwind CSS | ^4.1.18 | 原子化 CSS (v4) |
| UI 组件库 | shadcn/ui + Radix UI | latest | 可定制组件 |
| 图标库 | lucide-react | ^0.562.0 | 图标集 |
1.4 网络与数据
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| HTTP 客户端 | Axios | ^1.10.0 | API 请求 |
| 表单处理 | React Hook Form | ^7.57.0 | 表单验证 |
| 表单验证 | Zod | ^3.25.64 | Schema 验证 |
| 日期处理 | date-fns | ^4.1.0 | 日期工具 |
1.5 路由与国际化
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| 路由 | React Router | ^7.6.1 | 客户端路由 |
| 国际化 | react-i18next | ^15.5.2 | 多语言支持 |
1.6 交互功能
| 类别 | 技术选型 | 版本 | 说明 |
|---|---|---|---|
| 拖拽 | @dnd-kit | ^6.3.1 / ^10.0.0 | 拖拽排序 |
2. 开发工具
| 工具 | 用途 |
|---|---|
| ESLint | 代码质量检查 (Flat Config) |
| Prettier | 代码格式化 |
| Husky | Git Hooks |
| lint-staged | 暂存文件检查 |
3. 特殊功能依赖
3.1 文档解析
| 依赖 | 版本 | 用途 |
|---|---|---|
| fountain-js | ^1.2.4 | 剧本格式解析 |
| mammoth | ^1.11.0 | Word 文档解析 |
| pdfjs-dist | ^5.4.530 | PDF 文件解析 |
| turndown | ^7.2.2 | HTML 转 Markdown |
| react-markdown | ^10.1.0 | Markdown 渲染 |
4. 技术选型理由
4.1 React 19
选择理由:
- 并发渲染支持,提升大型列表和复杂交互的性能
- Suspense 支持异步数据加载
- 自动批处理减少渲染次数
- 成熟的生态系统
适用场景:
- 复杂的分镜列表渲染
- 时间轴的实时交互
- 大量组件的状态同步
4.2 Vite 7
选择理由:
- 基于 ESM 的极速开发服务器
- 快速的 HMR(热模块替换)
- 优化的生产构建
- 开箱即用的 TypeScript 支持
- 原生支持 Tailwind v4
性能优势:
- 开发服务器启动时间 < 1s
- HMR 更新时间 < 100ms
- 生产构建优化(Tree-shaking、代码分割)
4.3 Zustand 5
选择理由:
- 极简 API,学习成本低
- 无 Provider 包装,使用灵活
- TypeScript 原生支持
- 支持中间件扩展(devtools、persist)
对比其他方案:
- vs Redux:更轻量,无样板代码
- vs Context API:性能更好,避免不必要的重渲染
- vs Jotai/Recoil:更简单直观
4.4 Tailwind CSS v4 + shadcn/ui
选择理由:
- Tailwind v4 新特性:使用
@theme指令配置,无需 JS 配置文件 - 原子化 CSS 减少样式冲突
- shadcn/ui 组件基于 Radix UI,可完全自定义
- 统一的设计系统(Pro Studio 主题)
- 优秀的开发体验
优势:
- 样式与组件解耦
- 响应式设计简单
- 深色模式支持完善
- 构建产物体积小
4.5 @dnd-kit
选择理由:
- 现代化的拖拽库
- 支持键盘无障碍访问
- 高性能,支持虚拟列表
- 用于分镜排序、时间轴编辑
适用场景:
- 分镜列表拖拽排序
- 时间轴轨道项拖拽
- 资源库拖拽上传
5. 依赖版本清单
5.1 生产依赖
{
"dependencies": {
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-router-dom": "^7.6.1",
"@tanstack/react-query": "^5.80.7",
"@tanstack/react-query-devtools": "^5.80.7",
"zustand": "^5.0.5",
"axios": "^1.10.0",
"zod": "^3.25.64",
"react-hook-form": "^7.57.0",
"@hookform/resolvers": "^5.1.0",
"date-fns": "^4.1.0",
"lucide-react": "^0.562.0",
"clsx": "^2.1.1",
"tailwind-merge": "^3.4.0",
"class-variance-authority": "^0.7.1",
"@radix-ui/react-*": "^1.0.0+",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"i18next": "^25.2.1",
"react-i18next": "^15.5.2",
"i18next-browser-languagedetector": "^8.0.5",
"i18next-http-backend": "^3.0.2",
"fountain-js": "^1.2.4",
"mammoth": "^1.11.0",
"pdfjs-dist": "^5.4.530",
"turndown": "^7.2.2",
"react-markdown": "^10.1.0",
"remark-breaks": "^4.0.0"
}
}
5.2 开发依赖
{
"devDependencies": {
"typescript": "~5.9.3",
"vite": "^7.2.4",
"@vitejs/plugin-react": "^5.1.1",
"@tailwindcss/vite": "^4.1.18",
"tailwindcss": "^4.1.18",
"tailwindcss-animate": "^1.0.7",
"@tailwindcss/typography": "^0.5.19",
"postcss": "^8.5.6",
"autoprefixer": "^10.4.23",
"eslint": "^9.39.2",
"@eslint/js": "^9.39.2",
"typescript-eslint": "^8.52.0",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.26",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"prettier": "^3.7.4",
"globals": "^16.5.0",
"husky": "^9.1.7",
"lint-staged": "^16.2.7",
"@types/node": "^24.10.1",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
"@types/turndown": "^5.0.6"
}
}
相关文档
最后更新:2025-01-18 | 版本:v1.1