Skip to content

开发指南

详细的开发和构建说明。

快速开始

bash
# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建生产版本
pnpm build

# 本地预览
pnpm preview

# 运行测试
pnpm test

项目结构

vitePress/
├── front/              # 前端内容和组件
│   ├── components/     # React 可交互组件
│   │   ├── Button/     # 按钮组件
│   │   ├── Form/       # 表单相关
│   │   └── Select/     # 选择器组件
│   └── knowledge/      # 知识库文章(Markdown)
├── public/             # 静态资源和演示页面
│   ├── *.html          # 交互式演示页面
│   └── ...
├── tests/              # Playwright E2E 测试
├── .vitepress/         # VitePress 配置
│   ├── config.mts      # 主配置文件
│   └── theme/          # 主题定制
├── .github/workflows/  # CI/CD 工作流
├── package.json        # 项目依赖和脚本
├── tsconfig.json       # TypeScript 配置
├── eslint.config.js    # ESLint 配置
└── .prettierrc.json    # Prettier 配置

脚本命令

开发

命令说明
pnpm dev启动开发服务器 (http://localhost:5173)
pnpm build构建生产版本
pnpm preview本地预览构建结果

质量保证

命令说明
pnpm typecheckTypeScript 类型检查
pnpm lintESLint 代码检查
pnpm lint:fix自动修复 ESLint 问题
pnpm formatPrettier 代码格式化

测试

命令说明
pnpm test运行 Playwright 测试
pnpm test:uiUI 模式运行测试
pnpm test:headed显示浏览器运行测试
pnpm link:check检查链接有效性

技术栈

  • VitePress: 1.6.4 - 文档网站生成器
  • React: 19.2.3 - UI 框架
  • TypeScript: 5.9.3 - 类型检查
  • Playwright: ^1.58.2 - E2E 测试框架
  • Three.js: ^0.182.0 - 3D 图形库
  • MobX: ^6.13.7 - 状态管理

工具配置

ESLint

代码规范检查,配置文件:eslint.config.js

bash
pnpm lint              # 检查所有文件
pnpm lint:fix          # 自动修复问题

Prettier

代码格式化,配置文件:.prettierrc.json

bash
pnpm format            # 格式化所有文件

Husky + lint-staged

Pre-commit 钩子,自动在提交前检查和格式化代码。

配置文件:

  • .husky/pre-commit - Pre-commit 钩子
  • .lintstagedrc.json - 分阶段检查配置

常见任务

添加新知识文章

  1. front/knowledge/ 中创建 .md 文件
  2. 修改 .vitepress/config.mtssidebar 配置
  3. 运行 pnpm dev 预览

创建新组件

  1. front/components/ 创建组件目录
  2. 编写 .tsx 文件(使用 TypeScript)
  3. 创建 index.md 文档
  4. 在配置中添加导航

TypeScript 规范

  • 必须完整的类型注解
  • 禁用 any 类型
  • 使用命名导出
typescript
// ✅ 正确
export interface ButtonProps {
  label: string;
  onClick: () => void;
}

export { Button };

// ❌ 错误
export default Button;
button.tsx: export default Button

创建交互演示

  1. public/ 创建 .html 文件
  2. 使用 Vanilla JS 或 React
  3. 在文章中用 iframedemo 标签嵌入

修改网站样式

VitePress 主题文件在 .vitepress/theme/,可自定义 CSS 变量和组件外观。

构建和部署

本地构建

bash
pnpm build            # 生成静态文件到 dist/
pnpm preview          # 本地预览构建结果

自动部署

Push 到 master 分支后,GitHub Actions 自动:

  1. 运行类型检查和代码检查
  2. 运行 E2E 测试
  3. 构建生产版本
  4. 部署到托管平台

调试技巧

调试 VitePress

bash
# 开发服务器支持热部署
pnpm dev

# 修改文件后浏览器自动刷新

调试测试

bash
# UI 模式查看测试过程
pnpm test:ui

# 显示浏览器运行(便于观察)
pnpm test:headed

# 单个测试文件
pnpm test tests/basic.spec.ts

浏览器控制台

在演示页面中点击浏览器的开发者工具(F12),查看控制台消息。

性能优化

  • 图片使用 WebP 格式
  • 使用代码分割和动态导入
  • 启用 Gzip 压缩
  • 使用 CDN 加速

常见问题

依赖版本冲突

bash
# 清新安装
rm -rf node_modules pnpm-lock.yaml
pnpm install

端口被占用

bash
# 使用其他端口
pnpm dev --port 5174

类型检查失败

bash
# 重新生成类型
pnpm typecheck

在线资源

内容仅供学习参考,如有错误欢迎指正与 PR