核心用法
Chart Image Generator 是一款专为 Fly.io/VPS/Docker 无头部署环境设计的图表生成工具,基于 Vega-Lite 规范渲染 PNG/SVG 图片。通过纯 Node.js 实现,无需浏览器或原生编译,解决了传统方案(Puppeteer、node-canvas)体积庞大、启动慢、依赖复杂的问题。
基础调用模式:
node chart.mjs --type <chart-type> --data '[JSON-array]' --output chart.png
支持图表类型包括:折线图(多系列)、柱状图(堆叠)、面积图、散点图、饼图/环形图、K 线图、热力图等,以及双 Y 轴组合图、迷你 Sparkline 等高级形态。
显著优点
1. 部署友好:~15MB 依赖体积,对比 Puppeteer 方案 400MB+ 缩减 95% 以上;预编译 Sharp 二进制,无需 gcc/make 等构建工具
2. 性能优异:冷启动 <500ms,无浏览器 spin-up 延迟,适合 Serverless/边缘计算场景
3. 功能完整:内置货币/百分比/科学计数法等格式化、暗色模式、社交尺寸预设、时间序列自动解析、注解标记等生产级特性
4. 零外部依赖:纯离线运行,不依赖 QuickChart.io 等第三方 API
潜在局限
- 样式定制深度受限于 Vega-Lite 规范,极端复杂可视化需直接提交自定义 spec
- 无交互能力(静态图片输出),不支持图表动画或用户端tooltip
- JSON 数据输入需前置处理,不直接支持 CSV/Excel 等格式
适合人群
- 运维/监控场景:生成告警配图、Dashboard 截图
- 数据分析师:快速产出报告级图表,无需打开 BI 工具
- 开发者:需要内嵌图表生成的后端服务、Bot、自动化工作流
常规风险
- 输入 JSON 未经验证时可能存在解析异常,需确保数据来源可信
- 文件输出路径需有写入权限,建议使用
/data/clawd/tmp/持久化目录 - 大量并发生成时需关注 Sharp 的内存占用(通常单图 <50MB)