开发流程
本指南将帮助您了解 flywave.gl 的开发工作流程。
开发环境设置
系统要求
- Node.js: >=22.15.0
- pnpm: >=9.0.0 (推荐)
安装依赖
克隆项目仓库后,运行以下命令安装依赖:
pnpm install
这将安装所有必需的包并设置 pnpm workspace。
开发工作流程
启动开发服务器
启动示例项目的开发服务器:
pnpm start
启动后,在浏览器中访问 http://localhost:8080/ 查看示例。
运行测试
单元测试
# 运行单元测试
pnpm test
# 以调试模式运行测试
pnpm test-debug
# 在浏览器中运行测试
pnpm test-browser
# 运行测试并生成覆盖率报告
pnpm test-cov
性能测试
# 在 Node.js 环境中运行性能测试
pnpm performance-test-node
浏览器端测试
启动测试服务器:
pnpm start-tests
# Project is running at http://localhost:8080/
在另一个终端中运行测试:
npx mocha-webdriver-runner http://localhost:8080/ --chrome
npx mocha-webdriver-runner http://localhost:8080/ --headless-firefox
代码规范
代码质量检查
在提交代码前,请运行以下命令确保代码质量:
# 检查 ESLint 问题
pnpm eslint
# 自动修复 ESLint 问题
pnpm eslint:fix
# 检查代码格式
pnpm prettier
# 自动修复格式问题
pnpm prettier:fix
类型安全
- 使用强类型,避免使用
any类型 - 确保 TypeScript 类型检查通过
- 为函数和变量添加明确的类型注解
命名规范
- 类和接口使用帕斯卡命名法(PascalCase)
- 方法和函数使用驼峰命名法(camelCase)
- 常量使用全大写字母和下划线分隔(UPPER_CASE)
- 私有成员变量使用
m_前缀(如m_visibleTileSetOptions) - 只读属性使用
readonly关键字
性能测试
在进行可能影响性能的更改时,请进行基线比较:
-
建立基线结果:
git checkout master
PROFILEHELPER_COMMAND=baseline pnpm performance-test-node -
进行您的更改
-
重新运行测试:
pnpm performance-test-node --grep [specific test name] -
比较结果并确保性能没有显著下降
贡献指南
提交代码
- 确保所有测试通过
- 运行代码质量检查
- 提交符合项目规范的代码
代码审查
- 确保代码逻辑清晰
- 添加适当的注释(尤其是复杂逻辑)
- 遵循项目编码规范
项目结构
flywave.gl/
├── @flywave/ # 核心模块目录
│ ├── flywave-terrain-datasource/ # 地形数据源模块
│ ├── flywave-mapview/ # 地图视图核心模块
│ ├── flywave-geoutils/ # 地理空间工具模块
│ ├── flywave-datasource-protocol/ # 数据源协议模块
│ ├── flywave-map-controls/ # 地图控件模块
│ ├── flywave-utils/ # 工具模块
│ └── ... # 其他模块
├── docs/ # 文档目录
├── scripts/ # 构建和开发脚本
├── test/ # 测试目录
└── ... # 项目配置文件