SandDance开发环境搭建:从源码构建到自定义扩展
想要深入了解数据可视化技术并打造个性化的数据探索工具吗?SandDance作为微软研究院开发的强大数据可视化组件,提供了完整的源码架构和丰富的扩展能力。本指南将带你从零开始搭建SandDance开发环境,让你能够从源码构建、测试到创建自定义扩展,全面掌握这一先进的数据可视化框架。🚀
系统要求与环境准备
在开始搭建SandDance开发环境之前,确保你的系统满足以下要求:
- Node.js 16或更高版本
- NPM 8或更高版本
- Jekyll(用于本地运行网站)
首先克隆仓库并安装依赖:
git clone https://gitcode.com/gh_mirrors/sa/SandDance
cd SandDance
npm install
源码架构解析
SandDance采用分层组件架构,理解这一架构对后续开发至关重要:
- Deck.gl - 负责WebGL渲染和画布控制
- Vega - 处理图表布局
- sanddance-specs - 提供单元可视化的Vega规范
- sanddance - 核心可视化组件,包含视图选择和过滤交互
- sanddance-react - React封装层
- sanddance-explorer - 数据探索组件
完整构建流程
执行构建命令来编译所有组件:
npm run build
这个命令会按顺序执行9个构建阶段(build:01到build:09),确保所有依赖关系正确构建。构建过程包括:
- TypeScript编译
- CSS预处理
- 资源打包
- 测试代码生成
本地开发与调试
运行示例应用
启动开发服务器来测试sanddance-app:
npm start
访问 http://127.0.0.1:8085/ 查看运行效果。开发服务器支持热重载,修改代码后会自动刷新页面。
运行完整网站
如果需要运行完整的文档网站:
npm run deploy
cd docs
jekyll serve
然后访问 http://127.0.0.1:4000/SandDance/ 查看完整功能。
扩展开发实战
SandDance提供了丰富的扩展点,你可以基于现有组件创建自定义功能:
VS Code扩展开发
在 extensions/vscode-sanddance/ 目录下包含了完整的VS Code扩展源码,使用webpack进行打包。
Azure Data Studio扩展
extensions/azdata-sanddance/ 目录提供了Azure Data Studio扩展的实现,包括:
- 扩展入口点
src/extension.ts - API类型定义
src/azdata.proposed.d.ts - 部署脚本
scripts/deploy.js
自定义组件开发
创建新的可视化视图
基于sanddance-specs包,你可以定义新的Vega规范来创建自定义可视化视图。所有核心视图定义都在 packages/sanddance-specs/src/ 目录下。
集成React应用
使用sanddance-react包可以轻松地将SandDance集成到你的React应用中,享受React生态系统的完整支持。
测试与验证
项目提供了多种测试方式:
- ES6模块测试:
npm run serve-es6 - 数据推断测试:
npm run data-inference-dev - Streamlit集成测试:
npm run streamlit-dev
常见问题解决
构建错误处理
如果遇到构建问题,可以尝试清理缓存:
npm run clean
依赖版本冲突
由于SandDance使用npm工作区管理多个包,确保所有包的依赖版本兼容。
最佳实践建议
- 模块化开发 - 遵循项目的模块化架构原则
- 类型安全 - 充分利用TypeScript的类型系统
- 性能优化 - 注意WebGL渲染的性能特性
- 用户体验 - 保持平滑的动画过渡效果
通过本指南,你已经掌握了SandDance开发环境的完整搭建流程。从源码构建到自定义扩展开发,你现在具备了深入定制这一强大数据可视化工具的能力。继续探索SandDance的更多功能,打造属于你自己的数据可视化解决方案!✨
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





