MajdataNet v2. 你可以在 Branch Legacy 找到v1
- React 19
- TypeScript
- Vite 7
- Tailwind CSS 4
- React Router 7
- Axios
- SWR (数据获取)
- Framer Motion (动画)
- i18n (国际化支持)
- 谱面上传与管理
- 谱面浏览与下载
- 谱面评论与互动
- 用户注册与登录
- 个人空间管理
- 活动系统与活动标签
- 排行榜系统
- MMFC (Full Combo) 排行榜
- 用户排行榜
- 谱面互动计数
- 小游戏集成
- 多语言支持 (中文、英文、日文、韩文)
- PWA支持
- 响应式设计
- Node.js 18+
- pnpm (推荐) / npm / yarn
pnpm installpnpm dev访问 http://localhost:5173 查看应用。
pnpm build构建产物将输出到 dist 目录。
pnpm previewpnpm lintsrc/
├── components/ # 可复用组件
├── pages/ # 页面组件
├── contexts/ # React Context
├── hooks/ # 自定义Hooks
├── utils/ # 工具函数
├── types/ # TypeScript类型定义
├── config/ # 配置文件
├── styles/ # 样式文件
└── assets/ # 静态资源
public/ # 公共资源
├── i18n/ # 国际化翻译文件
├── icons/ # 图标
├── MiniGame/ # 小游戏资源
└── WebGLBuild/ # WebGL构建资源
/- 首页/login- 登录页/register- 注册页/edit- 谱面编辑页/song- 谱面详情页/events- 活动列表页/eventTag- 活动标签页/ranking- 谱面排行榜/user-ranking- 用户排行榜/mmfc-ranking- MMFC排行榜/user- 用户主页/user/charts- 用户谱面列表/user/profile- 用户资料页/space- 个人空间/minigame- 小游戏页
本项目支持以下语言:
- 中文 (zh)
- English (en)
- 日本語 (ja)
- 한국어 (ko)
翻译文件位于 public/i18n/ 目录。
项目使用严格的TypeScript配置,所有类型定义位于 src/types/ 目录。
- 使用函数式组件和Hooks
- 组件应当保持单一职责
- 复用性高的组件放在
src/components/ - 页面级组件放在
src/pages/
- 使用Tailwind CSS进行样式开发
- 自定义样式放在对应的CSS文件中
- 保持样式的响应式设计
项目使用ESLint进行代码规范检查。提交代码前请确保:
pnpm lint没有错误和警告。
API相关配置位于 src/config/ 目录:
api.ts- API端点配置axios.ts- Axios实例配置apiRetCode.ts- API返回码定义
欢迎提交Issue和Pull Request。
在提交PR前,请确保:
- 代码通过ESLint检查
- 新功能有对应的类型定义
- 重要功能有注释说明
- 测试功能正常运行
本项目仅供学习交流使用。
如有问题或建议,欢迎通过Issue反馈。