Skip to main content

Node.js 设置

Konva 可以在 Node.js 环境中用于服务器端渲染、图像处理和画布操作。本指南将帮助你在 Node.js 项目中设置 Konva。

Konva 版本 10+

Konva v10+ 取消了对 Node.js 环境的默认支持。你现在需要显式导入画布后端。

安装

Konva v10+ 为 Node.js 提供了两种后端选项:

Canvas 后端(默认)

npm install konva canvas

Skia 后端(性能更佳)

npm install konva skia-canvas

使用方法

导入 Konva 以及你选择的后端:

Canvas 后端

import Konva from 'konva';
import 'konva/canvas-backend';

Skia 后端

import Konva from 'konva';
import 'konva/skia-backend';

完整示例

import Konva from 'konva';
import 'konva/canvas-backend'; // 或者 'konva/skia-backend'

// 创建舞台
const stage = new Konva.Stage({
container: 'container', // 在 Node.js 中此项将被忽略
width: 800,
height: 600
});

// ... 你的其他 konva 代码

// 导出为数据 URL
const dataURL = stage.toDataURL();

Konva 版本 ≤ 9(旧版)

对于旧版本的 Konva,设置更简单:

安装

npm install konva

设置

const Konva = require('konva');

// 创建舞台
const stage = new Konva.Stage({
container: 'container', // 在 Node.js 中此项将被忽略
width: 800,
height: 600
});

// ... 你的其他 konva 代码

// 导出为数据 URL
const dataURL = stage.toDataURL();

服务器端渲染注意事项

在 Node.js 中使用 Konva 时,请注意:

  1. 无 DOM:Konva 不依赖 DOM,非常适合服务器端渲染
  2. 画布导出:使用 stage.toDataURL() 导出画布为图像
  3. 内存管理:处理多个画布时注意内存使用
  4. 性能:Konva 在 Node.js 环境中批量操作表现良好
  5. SSR 框架:对于 Next.js 等 SSR 框架,考虑仅在客户端渲染画布内容

常见用例

  • 图像生成:为邮件、报告或社交媒体创建动态图像
  • 图表生成:服务器端生成图表和图形
  • 文档处理:向 PDF 或其他文档添加图形
  • 批量处理:并行处理多张图像或图形